Vérification doublon email avant validation du formulaire

Résolu/Fermé
Signaler
Messages postés
41
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
23 septembre 2021
-
Messages postés
34273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 décembre 2021
-
Bonjour,

Je début en BDD et je rencontre un soucis au sujet de la vérification de doublon d'adresse e-mail afin de valider un formulaire.

J'ai un formulaire PHP qui permet aux utilisateurs de s'inscrire sur le site -- sur une base de donné mysql
Je souhaiterais que le script vérifier que le email n'existe pas déjà dans ma BDD.
pour ne pas avoir de doublon a l'inscription des utilisateurs. dans ma BDD. :(
Merci pour vos réponses.
Mon code :
<?php 

if($_POST) {
 // database connection
 $server = '127.0.0.1';
 $username = 'root';
 $password = '';
 $dbname = 'base';

 $conn = new mysqli($server, $username, $password, $dbname);

 // check db connection
 if($conn->connect_error) {
  die("Connection Failed : " . $conn->connect_error);
 } 
 else {
  // echo "Successfully Connected";
 }

 $valid = array('success' => false, 'messages' => array());

 $name = $_POST['fullName'];
 $lastname = $_POST['lastname'];
    $sex = $_POST['sex'];
    $age = $_POST['age'];
    $statut = $_POST['statut'];
    $proffession = $_POST['proffession'];
    $ville = $_POST['ville'];
    $mobile = $_POST['mobile'];
    $email = $_POST['email'];

 $type = explode('.', $_FILES['userImage']['name']);
    
    
 $type = $type[count($type) - 1];
 $url = '/uploads/files/' . uniqid(rand()) . '.' . $type;

 if(in_array($type, array('gif', 'jpg', 'jpeg', 'png'))) {
  if(is_uploaded_file($_FILES['userImage']['tmp_name'])) {
   if(move_uploaded_file($_FILES['userImage']['tmp_name'], $url)) {

    // insert into database
    $sql = "INSERT INTO visitor (Name,Lastname, Sex, Age, Statut, Proffession, Ville, Mobile, email, Image) VALUES ('$name','$lastname','$sex','$age','$statut','$proffession','$ville','$mobile','$email','$url')";

    if($conn->query($sql) === TRUE) {
     $valid['success'] = true;
     $valid['messages'] = "Successfully Uploaded";
    } 
    else {
     $valid['success'] = false;
     $valid['messages'] = "Erreur lors du telechargement";
    }

    $conn->close();

   }
   else {
    $valid['success'] = false;
    $valid['messages'] = "Error while uploading";
   }
  }
 }

 echo json_encode($valid);

 // upload the file 
}

3 réponses

Messages postés
34273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 décembre 2021
3 871
Bonjour,

De la même manière que tu as faire une requête INSERT pour insérer les données dans ta bdd, il te suffit de faire, avant, une requete SELECT pour vérifier si l'email est déjà présent ou non dans la base.

Un truc du genre
  $sql = "SELECT *
          FROM visitor 
          WHERE email = '$email' ";

  $result = $conn->query($sql);
  $row = $result -> fetch_array(MYSQLI_ASSOC);
  
  if (empty($row)){
    // dans ce cas, la requete n'a rien retourné..


    
  }else{
    echo "L'email existe déjà !";
  }



Edit: correction du code

..
Cordialement,
Jordane
Messages postés
41
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
23 septembre 2021
1
je vous remercie pour votre aide Jordane :)
le problème je ne sais même pas a qu'elle niveau le placée se code que vous venez de m'envoyer lol je suis vraiment novice :(
Messages postés
34273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 décembre 2021
3 871
Ligne 41 par exemple
Messages postés
41
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
23 septembre 2021
1 >
Messages postés
34273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 décembre 2021

j'ai une erreur sur cette ligne elle est en rouge
 $result = $conn->query($sql);*
$row = $result -> fetch_array(MYSQLI_ASSOC);
Messages postés
34273
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 décembre 2021
3 871 >
Messages postés
41
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
23 septembre 2021

Il y a un astérisque qui c'est glissé en trop dans mon code... Faut le retirer..
Messages postés
41
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
23 septembre 2021
1
s'il vous plaît a qu'elle niveau je place se code que vous venez de m'envoyer je suis vraiment novice :(