Page 1 sur 1

Comment vérifier la disponibilté des identifiants sur un formulaire

Posté : 04 avr. 2019, 16:19
par mrbendix
Bonjour voila j'ai déjà vérifier si le login était déjà présent dans la base il m’exécute bien mon ordre il me renvoie sur mon formulaire mais je ne sais pas comment faire pour dire à l'utilisateur que son identifiant est déjà pris ? Pouvez- vous m'aider s'il vous plaît? voici mon code.

Code : Tout sélectionner

<?php try { $bdd = new PDO ('mysql:host=localhost;dbname=bts_sn', 'project', 'project'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die('Erreur :'.$e->getMessage()); } if(ISSET($_POST['envoyer'])) { $validation = "0"; $distancedomiciles ="0"; $alerte = "bravo tu t'es inscrit"; $nom = $_POST['nom']; $prenom = $_POST['prenom']; $datedenaissance = $_POST['datedenaissance']; $adressepostale = $_POST['adressepostale']; $ville = $_POST['ville']; $codepostal =$_POST['codepostal']; $identifiantweb=$_POST['identifiantweb']; $motdepasseweb=$_POST['motdepasseweb']; $regime=$_POST['regime']; $classe=$_POST['classe']; $adresseelectronique=$_POST['adresseelectronique']; $motdepasseweb =sha1($motdepasseweb); $iden = array('root', 'admin','admins','administrateur','administrateurs','administratrice','administratrices','administrator','administrators','superutilisateur','superutilisateurs','superutilisatrice','superutilisatrices',); if(in_array($identifiantweb, $iden, true)==1) { header('location:pop.php'); exit(); } else { if(!empty($_POST['adresseelectronique'])) { $adresseelectroniquelength = strlen($adresseelectronique); if ($adresseelectroniquelength <= 42) { $reqadresseelectronique = $bdd->prepare("SELECT * FROM cyclistes WHERE adresseelectronique = ?"); $reqadresseelectronique->execute(array($adresseelectronique)); $adresseelectroniqueexist = $reqadresseelectronique->rowcount(); if ($adresseelectroniqueexist == 0) { if (!empty($_POST['identifiantweb'])) { $identifiantweblength = strlen($identifiantweb); if ($identifiantweblength <= 42) { $reqidentifiantweb = $bdd->prepare("SELECT * FROM cyclistes WHERE identifiantweb = ?"); $reqidentifiantweb->execute(array($identifiantweb)); $identifiantwebexist = $reqidentifiantweb->rowcount(); if ($identifiantwebexist == 0) { $req = $bdd->prepare('INSERT INTO cyclistes(nom,prenom,datedenaissance,adressepostale,ville,codepostal,identifiantweb,motdepasseweb,regime,classe,validation,distancedomiciles,adresseelectronique) VALUES (:nom,:prenom,:datedenaissance,:adressepostale,:ville,:codepostal,:identifiantweb,:motdepasseweb,:regime,:classe,:validation,:distancedomiciles,:adresseelectronique)'); $req->execute(array( "nom" => $nom, "prenom" => $prenom, "datedenaissance" => $datedenaissance, "adressepostale" => $adressepostale, "ville" => $ville, "codepostal" => $codepostal, "identifiantweb" => $identifiantweb, "motdepasseweb" => $motdepasseweb, "regime" => $regime, "classe" => $classe, "validation" => $validation, "distancedomiciles" => $distancedomiciles, "adresseelectronique"=> $adresseelectronique, )); } else { header('location:contacter.php'); exit(); } } } } else { header('location:contacter.php'); exit(); } } } } } header('location:index.php'); exit(); ?>

Re: Comment vérifier la disponibilté des identifiants sur un formulaire

Posté : 08 avr. 2019, 20:16
par Thuggy
Salut,

Tu peux le faire en procédant de la manière suivante :

-Tu stockes l'identifiant fournit par l'utilisateur dans une variable.

-Puis, tu passes cette variable en paramètre d'une fonction. Cette dernière aura pour rôle de sélectionner tout dans la table, où l'identifiant = à la variable en paramètre. Tu comptes et retourne le nombre de colonnes trouvées avec rowCount().

-Tu testes la valeur de retoue de la fonction, à l'aide d'un if. Si elle est égale à zéro, cela signifie que l'identifiant est libre. Si elle est supérieure à zéro, l'identifiant est déjà pris.

-Pour l'affichage, utilise un tableau dans lequel tu stockes (avec des clés), toutes erreurs (éventuellement la non-disponibilité d'un identifiant).

-Quand tu as finis d'effectuer tes vérifications, tu parcours le tableau avec un foreach et tu affiches son contenu dans une div. Pour cela, utilise un if(!empty(ton_tableau)){
//ton foreach ici
}
Cela evite de parcourir un tableau vide.

Re: Comment vérifier la disponibilté des identifiants sur un formulaire

Posté : 11 avr. 2019, 15:05
par mrbendix
merci pour ta réponse thuggy