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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment vérifier la disponibilté des identifiants sur un formulaire

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

par mrbendix » 11 avr. 2019, 15:05

merci pour ta réponse thuggy

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

par Thuggy » 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.

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

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