[RESOLU] comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

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 : [RESOLU] comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

Re: [RESOLU] comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par flexi2202 » 13 juil. 2021, 20:25

en fait cela fonctionne avec l adresse email et ou le pseudo
car j ai tout modifie le code

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par or 1 » 13 juil. 2021, 17:45

cela est réglé avec un AND
ça fonctionne avec un email identique mais un pseudo différent ? avec un pseudo existant mais pas l'email ?
cela permet d'afficher un message d'erreur disant si c'est le pseudo ou l'email qui est déjà utilisé ?

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par flexi2202 » 13 juil. 2021, 16:33

Shadowwera bonjour
merci pour la réponse et cela est réglé avec un AND

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par Shadowwera » 13 juil. 2021, 08:56

Bonjour,

La syntaxe n'est pas bonne
$sql = "SELECT pseudo, email, password FROM utilisateurs WHERE email, pseudo = ?, ?";
Utilise un AND (ou OR en fonction du besoin) pour spécifier plusieurs paramètres dans le WHERE

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par flexi2202 » 11 juil. 2021, 14:53

je viens d essayer de cette maniere mais cela ne fonctionne pas

Code : Tout sélectionner

<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); ?> <?php require_once 'base.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $password_retype = htmlspecialchars($_POST['password_retype']); //préparation de la requête et des variables $sql = "SELECT pseudo, email, password FROM utilisateurs 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 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(); } }

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par flexi2202 » 11 juil. 2021, 14:33

merci pour la reponse
je dois modifier cette partie

Code : Tout sélectionner

$check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); $check->execute(array($email));

Re: comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par or 1 » 11 juil. 2021, 13:38

ce code vérifie qu'il n'y a pas déjà un email. il suffit de faire pareil avec le pseudo.

comment ajouter une vérification pour savoir si le pseudo est déjà présent dans la base de donnée

par flexi2202 » 11 juil. 2021, 12:56

bonjour a tous
j ai un traitement pour l inscription des nouveaux membres
mais j aurais souhaiter ajouter une vérification supplémentaire
afin de savoir si l utilisateur existe déjà
comment je pourrais m y prendre
merci de l aide

Code : Tout sélectionner

<?php session_start(); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); ?> <?php require_once 'base.php'; if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_retype'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $password_retype = htmlspecialchars($_POST['password_retype']); $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateurs WHERE email = ?'); $check->execute(array( $email )); $data = $check->fetch(); $row = $check->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(); } }