Function pseudo_existe($pseudo)
Zakarya93
Messages postés
1026
Statut
Membre
-
Zakarya93 Messages postés 1026 Statut Membre -
Zakarya93 Messages postés 1026 Statut Membre -
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
- Le bon coin pseudo - Forum Réseaux sociaux
- A défini votre pseudo sur - Forum Facebook Messenger
- Sur WhatsApp, vous pourrez bientôt utiliser un nom d'utilisateur sans afficher votre numéro de téléphone - Accueil - Messagerie instantanée
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