Comment vérifier si le pseudo est déjà dans la base de donnée
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
je souhaiterais pouvoir vérifier si le pseudo est déjà présent dans la base de donnée avant l inscription
voici mon code mais cela ne semble pas etre bon et correct
je souhaiterais pouvoir vérifier si le pseudo est déjà présent dans la base de donnée avant l inscription
voici mon code mais cela ne semble pas etre bon et correct
<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', true); ini_set('display_startup_errors', true); ?> <?php 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 $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 { header('Location: inscription.php?reg_err=already'); die(); } }
A voir également:
- Comment vérifier si le pseudo est déjà dans la base de donnée
- Base de registre - Guide
- Verifier compatibilite windows 11 - Guide
- Vérifier si mot de passe piraté - Guide
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Pseudo facebook - Guide
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.
WHERE email, pseudo = ?, ?";
Where email quoi ??
Le souci vient de ta requête SQL et non pas de ton code PHP
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
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(); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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(); } }