logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] Page de connexion
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [PHP] Page de connexion  (Lu 3120 fois)
xJustiCe

Profil challenge

Classement : 2165/54277

Membre Junior
**
Hors ligne Hors ligne
Messages: 61


Voir le profil
« le: 28 Mars 2010 à 21:10:06 »

Bonjour,

je cherche à faire une page pour que l'utilisateur puisse se connecter. Pour cela, il doit rentrer son prénom ainsi que son password pour s'identifier.
Voici le code :

Code:
$reponse = $bdd->query('SELECT prenom, password FROM inscription WHERE prenom = :prenom, password = :password');
$req->execute(array('prenom' => $_POST['prenom'], 'password' => $_POST['password']));

if (mysql_num_rows($reponse) != 0)
{
echo ' '.$_POST['prenom'].' est connecté';
}

else
{
echo 'Echec de la connection';
}

Ceci me retourne deux erreurs :

Notice: Undefined variable: req
Fatal error: Call to a member function execute() on a non-object


Ou bien avec or die(print_r($bdd->errorInfo()))

Array (
  • => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':prenom, password = :password' at line 1 ) 1[/i]
Journalisée
robert33
Beta testeur

Profil challenge

Classement : 36/54277

Néophyte
*
Hors ligne Hors ligne
Messages: 44


Voir le profil
« #1 le: 28 Mars 2010 à 21:14:43 »

Je crois que l'erreur est sans équivoque : la variable $req n'existe pas. T'as sûrement oublié un $req = new PDO(); juste avant ou un truc du genre.

Et aussi tu as une XSS au niveau de l'affichage du prénom.
Journalisée
OxMoZ

Profil challenge

Classement : 200/54277

Néophyte
*
Hors ligne Hors ligne
Messages: 18


Voir le profil
« #2 le: 28 Mars 2010 à 21:20:24 »

Bonsoir,

Je te conseille de lire un peu sur le sujet, ce ne sont pas les exemples qui manquent.
Tu peux commencer par ça : http://www.siteduzero.com/tutoriel-3-14668-un-site-dynamique-avec-php.html

Bon courage

PS: si tu ne comprend pas les erreurs qui te sont renvoyées, demande à ton copain google, on est rarement les seuls à avoir rencontrer l'erreur.
Journalisée
xJustiCe

Profil challenge

Classement : 2165/54277

Membre Junior
**
Hors ligne Hors ligne
Messages: 61


Voir le profil
« #3 le: 28 Mars 2010 à 21:32:45 »

Je crois que l'erreur est sans équivoque : la variable $req n'existe pas. T'as sûrement oublié un $req = new PDO(); juste avant ou un truc du genre.

Et aussi tu as une XSS au niveau de l'affichage du prénom.

Oui pour ce qui est des echo, j'ai pas cherché à faire compliqué. Mais merci quand même
Sinon j'ai déjà lu tous les cours PHP du SDZ et là j'essaye de m'entrainer en faisant des scripts qui me permettent de manipuler SQL.

Pour ce qui est des erreurs renvoyées, je pense que le problème est au niveau de mes variables $_POST['prenom] et $_POST['password']. A mon avis, je ne dois pas les déclarer correctement  ...


EDIT :

Pour ceux qui voudraient savoir le bon code, le voici :

Code:
$req = $bdd->prepare('SELECT prenom, password FROM inscription WHERE prenom = :prenom AND password = :password');
$req->execute(array(':prenom' => $_POST['prenom'], ':password' => $_POST['password']));

if($req->rowCount()) //On test si il existe une entrée dans la table
{
$_SESSION['prenom'] = $_POST['prenom'];
$_SESSION['password'] = $_POST['password'];

echo ' '.htmlspecialchars ($_POST['prenom']).' est connecté <br/>';
echo 'Votre password est '.htmlspecialchars ($_POST['password']).' ';
}// Fin if($req->rowCount())

else
{
echo 'Echec de la connection';
}

Le problème était que je ne pouvais pas utiliser mysql_num_rows() avec PDO.
Aussi j'ai apporté la correction contre la faille XSS avec thmlspecialchars.
« Dernière édition: 03 Avril 2010 à 11:09:08 par xJustiCe » Journalisée
Pages: [1]
  Imprimer  
 
Aller à: