Disponibilité du pseudo PHP
Résolu
shoub-tcy
Messages postés
169
Date d'inscription
Statut
Membre
Dernière intervention
-
shoub-tcy Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
shoub-tcy Messages postés 169 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un formulaire d'inscription, et je voudrais vérifier si le pseudo que le visiteur rentre est déja pris ou non. J'ai créer ce code mais que je rentre un bon ou un mauvais pseudo, il y a toujours ce même problème, la phrase : "Ce pseudo n'est pas disponible".
Voici mon code sur ma page de traitement :
<?php
$pseudo = $_POST['pseudo'];
$dn =(mysql_query('SELECT pseudo FROM formulaire WHERE pseudo="'.$pseudo.'"'));
if($dn>0)
{
$erreur=3;
include('page2.php');
exit();
}
?>
Et sur la page 2:
<?php
if (isset($erreur)) {
if ($erreur == 3) {
echo '<span class="erreur">Ce pseudo n\'est pas disponible.</span>';
}
}
?>
Mais le problème viens du premier code sur ma page de traitement puisque le phrase s'affiche.
J'ai créé un formulaire d'inscription, et je voudrais vérifier si le pseudo que le visiteur rentre est déja pris ou non. J'ai créer ce code mais que je rentre un bon ou un mauvais pseudo, il y a toujours ce même problème, la phrase : "Ce pseudo n'est pas disponible".
Voici mon code sur ma page de traitement :
<?php
$pseudo = $_POST['pseudo'];
$dn =(mysql_query('SELECT pseudo FROM formulaire WHERE pseudo="'.$pseudo.'"'));
if($dn>0)
{
$erreur=3;
include('page2.php');
exit();
}
?>
Et sur la page 2:
<?php
if (isset($erreur)) {
if ($erreur == 3) {
echo '<span class="erreur">Ce pseudo n\'est pas disponible.</span>';
}
}
?>
Mais le problème viens du premier code sur ma page de traitement puisque le phrase s'affiche.
A voir également:
- Disponibilité du pseudo PHP
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Pseudo facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Sur WhatsApp, vous pourrez bientôt utiliser un nom d'utilisateur sans afficher votre numéro de téléphone - Accueil - Messagerie instantanée
3 réponses
Bonsoir (ou re :D),
Si on reprend ce que tu avais déjà fait sur le sujet précédent, tu auras ça logiquement :
Je te laisse compléter la partie : Enregistrement du pseudo dans la base de données et tout ça en PDO, pas avec des mysql_query.
Il est tout à fait possible d'utiliser la syntaxe suivante pour la requête select :
comme l'a fait l3ajib.
Si on reprend ce que tu avais déjà fait sur le sujet précédent, tu auras ça logiquement :
<?php $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options); if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['password'])) { extract($_POST); $sql = "SELECT * FROM formulaire WHERE pseudo='".$pseudo."'"; $req = $bdd->query($sql); $req->setFetchMode(PDO::FETCH_OBJ); if ($ligne = $req->fetch()){ // Le pseudo existe déjà $erreur=3; include('page2.php'); exit; } else { // Enregistrement du pseudo dans la base de données } } else { // Manque le pseudo ou le mot de passe ou les deux $erreur=2; include('page2.php'); exit; } $req->closeCursor(); ?>
Je te laisse compléter la partie : Enregistrement du pseudo dans la base de données et tout ça en PDO, pas avec des mysql_query.
Il est tout à fait possible d'utiliser la syntaxe suivante pour la requête select :
$sql = "SELECT count(*) FROM formulaire WHERE pseudo='".$pseudo."'";
comme l'a fait l3ajib.
Bonsoir,
1)il y a des parenthèses en trop.
2)$dn n'est pas un résultat mais une ressource(avec un pointeur) qu'il faut traiter pour obtenir un résultat.
Vous seriez arrivé à cette conclusion en affichant avec print_r ou echo votre variable $dn.
Voici comment faire:
Si vous voulez compter le nombre de valeurs avec $pseudo il vous faut utiliser la fonction SQL count:
comme ceci:
$dn =(mysql_query('SELECT pseudo FROM formulaire WHERE pseudo="'.$pseudo.'"'));
1)il y a des parenthèses en trop.
$dn =mysql_query('SELECT pseudo FROM formulaire WHERE pseudo="'.$pseudo.'"');
2)$dn n'est pas un résultat mais une ressource(avec un pointeur) qu'il faut traiter pour obtenir un résultat.
Vous seriez arrivé à cette conclusion en affichant avec print_r ou echo votre variable $dn.
Voici comment faire:
$resultat=mysql_fetch_row($dn); print_r($resultat);/* vous montre le tableau de résultat. La variable $resultat vous renvoie un tableau de résultats. Il vous faudra ensuite tester si elle est vide*/ if( !empty($resultat['pseudo'])){ // le pseudo existe déjà }else{ // le pseudo n'existe pas }
Si vous voulez compter le nombre de valeurs avec $pseudo il vous faut utiliser la fonction SQL count:
comme ceci:
$requete=mysql_query("SELECT COUNT(*) FROM formulaire WHERE pseudo='".$pseudo."'"); // renvoi le nombre de lignes correspondant à la clause WHERE // traiter la ressource pour obtenir le résultat $resultat=mysql_fetch_row($requete); print_r($resultat); if($resultat[0]>0){ // pseudo existe }else{ // pseudo n'existe pas }
Bonsoir;
Premièrement il faut se connecter sur la BDD, utilise la PDO de php
$dbh=new PDO('mysql:host=HostDelaBDD;dbname=NomDeLaBDD','UserDeLaBDD','');
Deuxièmement et pour la requête SELECT pseudo... ne complique pas les choses voici une façon de faire:
$c=0;
$sql="SELECT count(*) FROM formulaire WHERE pseudo='$pseudo'";
$c=(mysql_query($sql));
if ($c==0) // login inexistant
if ($c==1) // login existe déjà
Premièrement il faut se connecter sur la BDD, utilise la PDO de php
$dbh=new PDO('mysql:host=HostDelaBDD;dbname=NomDeLaBDD','UserDeLaBDD','');
Deuxièmement et pour la requête SELECT pseudo... ne complique pas les choses voici une façon de faire:
$c=0;
$sql="SELECT count(*) FROM formulaire WHERE pseudo='$pseudo'";
$c=(mysql_query($sql));
if ($c==0) // login inexistant
if ($c==1) // login existe déjà
Le problème c'est que je suis sur un autre formulaire, le formulaire d'inscription ette fois ci, qui n'est pas sur la même page.
J'ai donc repris ton code à partir de : $sql = "SELECT * FROM formulaire WHERE pseudo='".$pseudo."'";
tout en ouvrant l'accès à la base de bonné juste avant, mais quand je rentre un pseudo déja présent dans ma base de donnée, la requete est quand même accepté, et fait comme si il n'y avait pas d'erreur.
Tes réponses sont efficaces de matin comme de nuit apparament^^
Peut être à bientot pour un nouveau problème ^^