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

Petit nouveau ! | 5 Messages

04 avr. 2019, 16:19

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(); ?>

Thuggy
Invité n'ayant pas de compte PHPfrance

08 avr. 2019, 20:16

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.

Petit nouveau ! | 5 Messages

11 avr. 2019, 15:05

merci pour ta réponse thuggy