Vérification doublon email avant validation du formulaire [Résolu]

Signaler
Messages postés
32
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
-
Messages postés
30410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
-
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
30410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 036
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
32
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
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
30410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 036
Ligne 41 par exemple
Messages postés
32
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
1 >
Messages postés
30410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020

j'ai une erreur sur cette ligne elle est en rouge
 $result = $conn->query($sql);*
$row = $result -> fetch_array(MYSQLI_ASSOC);
Messages postés
30410
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 036 >
Messages postés
32
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020

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