Comment vérifier si le pseudo est déjà dans la base de donnée
Fermé
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
-
11 juil. 2021 à 15:05
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 11 juil. 2021 à 17:26
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 11 juil. 2021 à 17:26
A voir également:
- Comment vérifier si le pseudo est déjà dans la base de donnée
- Verifier un lien - Guide
- Vérifier si mot de passe piraté - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Pseudo facebook - Guide
- Formules excel de base - Guide
7 réponses
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 562
11 juil. 2021 à 15:12
11 juil. 2021 à 15:12
bonjour,
je ne vois aucun commentaire qui décrit ce que fait le code.
as-quelle ligne essaies-tu de vérifier si le pseudo est déjà présent dans la base de donnée?
tu écris que cela ne semble pas être bon et correct: comment cela se comporte-t-il? en prenant le temps de le comprendre et de l'expliquer, tu vas peut-être mieux comprendre le code que tu as écrit.
je ne vois aucun commentaire qui décrit ce que fait le code.
as-quelle ligne essaies-tu de vérifier si le pseudo est déjà présent dans la base de donnée?
tu écris que cela ne semble pas être bon et correct: comment cela se comporte-t-il? en prenant le temps de le comprendre et de l'expliquer, tu vas peut-être mieux comprendre le code que tu as écrit.
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2025
4 732
11 juil. 2021 à 15:56
11 juil. 2021 à 15:56
WHERE email, pseudo = ?, ?";
Where email quoi ??
Le souci vient de ta requête SQL et non pas de ton code PHP
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 16:13
11 juil. 2021 à 16:13
merci jordane pour l aide
je vais lancer peut être une bêtise
peut être ceci
je vais lancer peut être une bêtise
peut être ceci
WHERE email=?, pseudo = ?";
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
1 562
>
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
11 juil. 2021 à 16:24
11 juil. 2021 à 16:24
tu essaies ainsi au hasard jusqu'à ce que cela ne donne plus de message d'erreur?
pourquoi ne pas plutôt passer un peu de temps à étudier la syntaxe SQL?
pourquoi ne pas plutôt passer un peu de temps à étudier la syntaxe SQL?
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
>
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
11 juil. 2021 à 16:30
11 juil. 2021 à 16:30
ah non voila j ai trouve il doit y avoir AND et pas une virgule
donc
mais j ai des nouvelles erreurs
pourtant je n ai que du php dans le code
Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php:68) in /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php on line 81
donc
WHERE email=? AND pseudo = ?";
mais j ai des nouvelles erreurs
pourtant je n ai que du php dans le code
Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php:68) in /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php on line 81
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
1 562
>
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
11 juil. 2021 à 16:51
11 juil. 2021 à 16:51
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
>
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
11 juil. 2021 à 17:06
11 juil. 2021 à 17:06
merci pour le lien mais je n ai aucun code html dans cette page
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 15:57
11 juil. 2021 à 15:57
bonjour yg_be
merci pour la réponse
je pensais l avoir suffisamment commente
je viens de rajouter des commentaires
donc la vérification ce passe sur ce morceau de code
et l endroit du message d erreur en cas de pseudo ou de mail présent dans la table
voici le message d erreur lorsque je valide les données pour l inscription
Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' pseudo = 'perroquet666@hotmail.com', 'phil2'' at line 1 Les datas : Array ( [0] => perroquet666@hotmail.com [1] => phil2 )
Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php:28) in /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php on line 56
le code complet
merci pour la réponse
je pensais l avoir suffisamment commente
je viens de rajouter des commentaires
donc la vérification ce passe sur ce morceau de code
//préparation de la requête et des variables afin de vérifier si le pseudo et l email sont déjà présent dans la table $sql = "SELECT pseudo, email, password FROM users WHERE email, pseudo = ?, ?"; $datas = array( $email, $pseudo ); //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } $data = $requete->fetch(); $row = $requete->rowCount(); if ($row == 0) {
et l endroit du message d erreur en cas de pseudo ou de mail présent dans la table
else { //message a afficher si le pseudo ou l email ne sont pas bons header('Location: inscription.php?reg_err=already'); die(); }
voici le message d erreur lorsque je valide les données pour l inscription
Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' pseudo = 'perroquet666@hotmail.com', 'phil2'' at line 1 Les datas : Array ( [0] => perroquet666@hotmail.com [1] => phil2 )
Warning: Cannot modify header information - headers already sent by (output started at /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php:28) in /storage/ssd4/105/15003105/public_html/phil/inscription_traitement.php on line 56
le code complet
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); ?> <?php // je me connecte a la base de donnee require_once 'config.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { //$pseudo = ($_POST['pseudo']); //$email = ($_POST['email']); //$password = ($_POST['password']); //$password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $ $password= !empty($_POST[' $password']) ? $_POST[' $password'] : NULL; $password_retype= !empty($_POST['password_retype']) ? $_POST['password_retype'] : NULL; //préparation de la requête et des variables afin de verifier si le psedo et l email sont deja preset dans la table $sql = "SELECT pseudo, email, password FROM users WHERE email, pseudo = ?, ?"; $datas = array( $email, $pseudo ); //Execution de la requete try { $requete = $bdd->prepare($sql); $requete->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } $data = $requete->fetch(); $row = $requete->rowCount(); if ($row == 0) { if (strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $insert = $bdd->prepare('INSERT INTO users(pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'); $insert->execute(array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24)) )); header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { //message a afficher si le pseusdo ou l email ne sont pas bons header('Location: inscription.php?reg_err=already'); die(); } }
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 16:04
11 juil. 2021 à 16:04
peut être que je ne peux pas faire la vérification du pseudo et de l email en même temps ?
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
1 562
11 juil. 2021 à 16:22
11 juil. 2021 à 16:22
tu veux vérifier qu'il n'existe pas un autre compte ayant exactement le même pseudo et exactement le même email?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 17:04
11 juil. 2021 à 17:04
yg_be
merci pour l aide
en fait je veux vérifier qu il n y a pas deux fois le même pseudo ou deux fois le même email dans ma base de donnée
merci pour l aide
en fait je veux vérifier qu il n y a pas deux fois le même pseudo ou deux fois le même email dans ma base de donnée
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 17:13
11 juil. 2021 à 17:13
je pense avoir trouve je reviens avec mon code
pour avoir votre avis
pour avoir votre avis
flexi2202
Messages postés
3801
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
21 octobre 2024
187
11 juil. 2021 à 17:26
11 juil. 2021 à 17:26
voici donc le code qui semble fonctionner sans aucun message d erreur
si vous pouviez me dire ce que vous en pensez
si vous pouviez me dire ce que vous en pensez
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); ?> <?php // je me connecte a la base de donnee require_once 'config.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { //$pseudo = ($_POST['pseudo']); //$email = ($_POST['email']); $password = ($_POST['password']); $password_retype = ($_POST['password_retype']); //preparation des variables propres $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; //$password= !empty($_POST[' $password']) ? $_POST[' $password'] : NULL; //$password_retype= !empty($_POST['password_retype']) ? $_POST['password_retype'] : NULL; //préparation de la requête et des variables afin de vérifier si l email est présent dans la table $sql = "SELECT pseudo, email, password FROM users WHERE email = ?"; $datas = [ $email ]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $data = $requete->fetch(); $row = $requete->rowCount(); if ($row == 0) { //préparation de la requête et des variables afin de vérifier si le pseudo est présent dans la table $sql = "SELECT pseudo, email, password FROM users WHERE pseudo = ?"; $datas = [ $pseudo ]; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $data = $requete->fetch(); $row = $requete->rowCount(); if ($row == 0) { if (strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if ($password == $password_retype) { $cost = ['cost' => 12]; $password = password_hash($password, PASSWORD_BCRYPT, $cost); $ip = $_SERVER['REMOTE_ADDR']; $insert = $bdd->prepare('INSERT INTO utilisateurs(pseudo, email, password, ip, token) VALUES(:pseudo, :email, :password, :ip, :token)'); $insert->execute(array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip, 'token' => bin2hex(openssl_random_pseudo_bytes(24)) )); header('Location:redirection-inscription.php?reg_err=success'); die(); } else { header('Location: inscription.php?reg_err=password'); die(); } } else { header('Location: inscription.php?reg_err=email'); die(); } } else { header('Location: inscription.php?reg_err=email_length'); die(); } } else { header('Location: inscription.php?reg_err=pseudo_length'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } } else { header('Location: inscription.php?reg_err=already'); die(); } }