Php mysql pdo espace membre pseudo déjà pris
Résolu/Fermé
Utilisateur anonyme
-
Modifié par ziczic1 le 10/05/2015 à 10:26
Utilisateur anonyme - 10 mai 2015 à 12:53
Utilisateur anonyme - 10 mai 2015 à 12:53
A voir également:
- Php mysql pdo espace membre pseudo déjà pris
- Espace insécable word - Guide
- Comment liberer de l'espace sur gmail - Guide
- Membre indisponible vinted - Guide
- Pseudo facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
6 réponses
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
Modifié par jordane45 le 10/05/2015 à 11:17
Modifié par jordane45 le 10/05/2015 à 11:17
Bonjour
tu as oublié d'inclure ta connexion à la bdd ..
Edit : l'include y est ... mais que contient il ?
.
Cordialement,
Jordane
tu as oublié d'inclure ta connexion à la bdd ..
Edit : l'include y est ... mais que contient il ?
.
Cordialement,
Jordane
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
10 mai 2015 à 12:05
10 mai 2015 à 12:05
Déjà, tu feras attention.. tu as encore un bout avec l'ancienne extension MYSQL
Il faudra la passer en PDO également....
Ensuite... ta connexion à la BDD est mise dans $CNX .... hors toi.. tu as cherché à utiliser
$BDD .... ???!
Donc soit tu renommes ta variables dans le QUERY .. soit dans ta CONNEXION.
PS : Au passage... prends l'habitude de sortir la requête de son exécution... cela permet d'en faire un ECHO si besoin.
else { // Pseudo libre, on l'insère dans la table mysql_query("INSERT INTO utilisateurs (pseudo) VALUE ('$pseudo')"); }
Il faudra la passer en PDO également....
Ensuite... ta connexion à la BDD est mise dans $CNX .... hors toi.. tu as cherché à utiliser
$BDD .... ???!
$query = $bdd->query("SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'");
Donc soit tu renommes ta variables dans le QUERY .. soit dans ta CONNEXION.
PS : Au passage... prends l'habitude de sortir la requête de son exécution... cela permet d'en faire un ECHO si besoin.
$sql = "SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'" // echo $sql; // si besoin pour boir ce qu'elle contient... $query = $cnx->query($sql);
Utilisateur anonyme
10 mai 2015 à 12:20
10 mai 2015 à 12:20
Merci pour vos conseils !
J'ai mis $cnx au lieu de $bdd
Quel est l'équivalent de
J'ai mis $cnx au lieu de $bdd
Quel est l'équivalent de
else {avec PDO ? Merci
// Pseudo libre, on l'insère dans la table
mysql_query("INSERT INTO utilisateurs (pseudo) VALUE ('$pseudo')");
}
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
10 mai 2015 à 12:24
10 mai 2015 à 12:24
$sql ="INSERT INTO utilisateurs (pseudo) VALUE ('$pseudo')"; // echo $sql; // si besoin pour boir ce qu'elle contient... $query = $cnx->exec($sql);
Mais l'ideal serait de passer par les requête préparées pour limiter les risques d'injection SQL..
Par exemple :
$sql ="INSERT INTO utilisateurs (pseudo) VALUE (:pseudo)"; $params = array(":pseudo"=>$pseudo); $query = $cnx->prepare($sql); $result = $query->execute($params);
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
>
Utilisateur anonyme
10 mai 2015 à 12:28
10 mai 2015 à 12:28
Sachant que les requête préparées fonctionnent pour TOUS les types de requêtes ( INSERT / UPDATE / DELETE ..)
Perso je les utilises partout. ( et jamais ->query ).
Pour comprendre le PREPARE .. je t'invite à lire ceci :
https://www.php.net/manual/fr/pdo.prepare.php
Perso je les utilises partout. ( et jamais ->query ).
Pour comprendre le PREPARE .. je t'invite à lire ceci :
https://www.php.net/manual/fr/pdo.prepare.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
Modifié par jordane45 le 10/05/2015 à 12:37
Modifié par jordane45 le 10/05/2015 à 12:37
Voici mon nouveau code, merci beaucoup de m'aider :-)
EDIT : AJout du langage dans les balises de code
<?php include ("cnx.php"); //démarrage de la session session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <h2> Formulaire d'inscription : </h2> <form action="" method = "POST"> <label for="pseudo"> pseudo : </label> </br> <input type="texte" name = "pseudo" /> </br> <label for="password"> Password : </label> </br> <input type="password" name = "password" /> </br> <input type="submit" value ="Inscription" /> </form> <?php // On vérifie que le formulaire à été complété et si les champs ne sont pas vides if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['password'])) ) { //On met le résultat pseudo du formulaire dans $pseudo $pseudo = addslashes($_POST["pseudo"]) ; //On sélectionne dans la table 'utilisateurs' les pseudo qui sont les mêmes que le pseudo tapé dans le formulaire $query = $cnx->query("SELECT pseudo FROM utilisateurs WHERE pseudo = '$pseudo'"); //On compte le nombre de réponse $count = $query->rowCount(); //Dans le cas où il y a une réponse, qu'un pseudo dans la table correspont au pseudo tapé if($count == 1) { // Pseudo déjà utilisé echo 'Ce pseudo est déjà utilisé'; } else { $sql ="INSERT INTO utilisateurs (pseudo) VALUE (:pseudo)"; $params = array(":pseudo"=>$pseudo); $query = $cnx->prepare($sql); $result = $query->execute($params); echo 'Vous êtes enregistré !'; } } ?> </body> </html>
EDIT : AJout du langage dans les balises de code
jordane45
Messages postés
38316
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 novembre 2024
4 705
10 mai 2015 à 12:43
10 mai 2015 à 12:43
Ton souci est surement du à ta ligne
Pour info (voici ce que dit la documentation) :
Pour ma part je ferais un truc du genre :
$count = $query->rowCount();
Pour info (voici ce que dit la documentation) :
Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête.
Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.
Pour ma part je ferais un truc du genre :
//On sélectionne dans la table 'utilisateurs' les pseudo qui sont les mêmes que le pseudo tapé dans le formulaire //préparation de la requête $params = array(":pseudo"=>$pseudo); $sql = "SELECT pseudo FROM utilisateurs WHERE pseudo = :pseudo" ; // execution de la requete $query = $cnx->prepare($sql); $query->execute($params); //Récupère tous les résultats dans un ARRAY $result = $query->fetchAll(); $nbResult = count($result); if($nbResult==1){ //....
10 mai 2015 à 11:44
10 mai 2015 à 12:02
Si tu utilises PDO alors tu ne peux pas utiliser mysql_query()
D'autre part ce n'est pas :
mais :
Cordialement.