Vérification doublon email avant validation du formulaire

Résolu/Fermé
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 - Modifié le 6 nov. 2020 à 19:58
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 - 6 nov. 2020 à 21:49
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

jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675
Modifié le 6 nov. 2020 à 21:50
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

..
0
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 4
6 nov. 2020 à 20:29
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 :(
0
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675
6 nov. 2020 à 21:17
Ligne 41 par exemple
0
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 4 > jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024
6 nov. 2020 à 21:22
j'ai une erreur sur cette ligne elle est en rouge
 $result = $conn->query($sql);*
$row = $result -> fetch_array(MYSQLI_ASSOC);
0
jordane45 Messages postés 38195 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 mai 2024 4 675 > lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023
6 nov. 2020 à 21:49
Il y a un astérisque qui c'est glissé en trop dans mon code... Faut le retirer..
0
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 4
Modifié le 6 nov. 2020 à 21:03
s'il vous plaît a qu'elle niveau je place se code que vous venez de m'envoyer je suis vraiment novice :(
0