Function pseudo_existe($pseudo)
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sachant que mon script functions.php est le suivant :
Je lui ai rajouté ceci :
pour éviter les doublons de pseudos. Mais quand je vais dans mon site, je m'inscrit avec un pseudo identique, il me fait "Le pseudo que vous avez choisi est déjà pritInscription terminée, vous pouvez vous connecter", et quand je vais dans ma bdd "utilisateurs", les données du pseudo doublon ont été enregistrés, que faire ? qu'est ce qui ne va pas ?
Sachant que mon script functions.php est le suivant :
<?php
try
{
$bdd = new PDO ('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
function inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos)
{
Global $bdd;
$password=sha1($password);
$sql = "INSERT INTO utilisateurs(pseudo,password,email,sexe,apropos)
VALUES (:pseudo,:password,:email,:sexe,:apropos)";
$result = $bdd->prepare($sql);
$result->bindValue('pseudo', $pseudo, PDO::PARAM_STR);
$result->bindValue('password', $password, PDO::PARAM_STR);
$result->bindValue('email', $email, PDO::PARAM_STR);
$result->bindValue('sexe', $sexe, PDO::PARAM_STR);
$result->bindValue('apropos', $apropos, PDO::PARAM_STR);
$result->execute();
}
Je lui ai rajouté ceci :
//la function qui va vérifier si pseudo existe($pseudo)
function pseudo_existe($pseudo)
{
$bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
//donc la, la verification:
$req = $bdd->query('SELECT COUNT(*) FROM utilisateurs WHERE pseudo="'.$pseudo.'"');
$etat = $req->fetchColumn();
if($etat == 0)
{
}
//sinon
else
{
echo('Le pseudo que vous avez choisi est déjà prit');
}
}
pour éviter les doublons de pseudos. Mais quand je vais dans mon site, je m'inscrit avec un pseudo identique, il me fait "Le pseudo que vous avez choisi est déjà pritInscription terminée, vous pouvez vous connecter", et quand je vais dans ma bdd "utilisateurs", les données du pseudo doublon ont été enregistrés, que faire ? qu'est ce qui ne va pas ?
A voir également:
- Function pseudo_existe($pseudo)
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Pseudo facebook - Guide
- Sur WhatsApp, vous pourrez bientôt utiliser un nom d'utilisateur sans afficher votre numéro de téléphone - Accueil - Messagerie instantanée
- Pseudo invisible - Forum Jeux vidéo
- Pseudo avec alex - Forum jeux en ligne
1 réponse
Bonjour,
voila ce que j'utilise pour mes formulaires :
voici la fonction pour éviter les doublons :
et voici le traitement du formulaire :
voila ce que j'utilise pour mes formulaires :
voici la fonction pour éviter les doublons :
//vérifie que les données ne sont pas en double dans la base de données if(!function_exists('is_already_in_use')) { function is_already_in_use($field, $value, $table) { global $db; $q = $db->prepare("SELECT id FROM $table WHERE $field = ?"); $q->execute([$value]); $count = $q->rowCount(); $q->closeCursor(); return $count; } }
et voici le traitement du formulaire :
<?php require('config/database.php'); require('includes/functions.php'); //si le formulaire a été soumis if(isset($_POST['register'])) { // si tous les champs sont remplis if(not_empty(['name', 'pseudo', 'email', 'password', 'password_confirm'])) { $errors = []; //tableau contenant l'ensemble des erreurs extract($_POST); //si le pseudo est deja dans la bdd if(is_already_in_use('pseudo', $pseudo, 'users')) { $errors[] = "Le pseudonyme est déja utilisé."; } //si l'adresse mail est deja dans la bdd if(is_already_in_use('email', $email, 'users')) { $errors[] = "L'adresse e-mail est déja utilisée."; } //si il y a 0 erreur if(count($errors) == 0) { //enregistrement du membre dans la base de donnée $q = $db->prepare('INSERT INTO users(name, pseudo, email, password) VALUES(:name, :pseudo, :email, :password)'); $q->execute([ 'name' => $name, 'pseudo' => $pseudo, 'email' => $email, 'password' => ($password) ]); redirect('index.php'); } else { save_input_data(); } } else { //si tous les champs ne sont pas remplis $errors[] = "Veuillez remplir s'il vous plaît tous les champs"; save_input_data(); } } else { clear_input_data(); } ?> <?php require('views/register.views.php'); ?>
et
Fatal error: require(): Failed opening required 'config/database.php' (include_path='.;C:\php\pear') in C:\wamp\www\rs\pages\register.php on line 100