Problème PHP et mySQL identification membre

Résolu/Fermé
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 6 mars 2012 à 16:51
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 10 mars 2012 à 16:27
Bonjour,

J'ai un petit soucis pour créer une identification de membre avec pseudo et mot de passe avec PHP et mySQL. J'ai créé le formulaire et j'ai essayé de créer un script, mais hélas sans résultat. Donc je ne sais vraiment pas ou ce situe l'erreur ou les erreurs, si quelqu'un pourrait m'aider, ça serait géniale. Voici mon script :

<?php

$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);

if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['password']))
{
extract($_POST);

$sql = "SELECT password FROM formulaire WHERE pseudo='".$pseudo."'";
$req = mysql_query($sql) or die('Erreur SQL !
<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['password'] != $password)
{
echo '<p> Vous avez rentré un mauvais pseudo ou mot de passe.</p>';
include('page3.php');
exit;
}
else
{
session_start();
$_SESSION['pseudo'] = $pseudo;

echo 'Identification OK';

header('Location: ../page1.php');
}
}
else
{
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('page3.php');
exit;
}

?>

Quand j'inscris un pseudo et un mot de passe de ma base de donné et que j'appuie sur envoyer, ce message apparait:
Erreur SQL !
SELECT password FROM formulaire WHERE pseudo='(ici apparait le pseudo tapé)'
No database selected

Amicalement.
A voir également:

2 réponses

Bonjour,

En PDO, on n'utilise pas ce qui suit :
$sql = "SELECT password FROM formulaire WHERE pseudo='".$pseudo."'";   
$req = mysql_query($sql) or die('Erreur SQL !   
<br>'.$sql.'<br>'.mysql_error()); 


Mais ceci :
$sql = "SELECT password FROM formulaire WHERE pseudo='".$pseudo."'";   
$req = $bdd->query($sql);


Sans oublier à la fin :
$req->closeCursor();
1
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
6 mars 2012 à 17:30
Merci pour ces modif Adenora!
Mais maintenant il m'indique qu'il y a une erreur à la ligne : $data = mysql_fetch_assoc($req);
Et la phrase vous avez rentré un mauvais mot de passe ou pseudo apparait, alors que ceux que je rentre sont juste.
0
Utilisateur anonyme
6 mars 2012 à 17:34
Pour la suite que j'ai oublié de donner :D
$req->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
while( $ligne = $req->fetch() )
{
        echo $ligne->password.'<br />'; // Pour tester
}


Source : http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html
0
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
6 mars 2012 à 17:58
Merci, mais j'ai toujours, la même erreur qui s'affiche, et le mot de passe que je rentre s'affiche sur la page maintenant.
0
C'était pour tester, le mot de passe qui s'affiche, ça veut dire que ça récupère bien le mot de passe ^^
Je reprends le code :
$sql = "SELECT password FROM formulaire WHERE pseudo='".$pseudo."'";    
$req = $bdd->query($sql); 
$req->setFetchMode(PDO::FETCH_OBJ); 
if($ligne->password != $password) 
{ 
      echo '<p> Vous avez rentré un mauvais pseudo ou mot de passe.</p>'; 
      include('page3.php'); 
      exit; 
} 
else 
{ 
      session_start(); 
      $_SESSION['pseudo'] = $pseudo; 

       echo 'Identification OK'; 

       header('Location: ../page1.php'); 
} 
$req->closeCursor(); 
0
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
6 mars 2012 à 18:23
Merci !!
Je sens que je me repproche du but grace à toi^^

Mais toujours les fichues erreurs sur cette ligne: $data = mysql_fetch_assoc($req);

-( ! ) Notice: Undefined variable: ligne in C:\Program Files\wamp\www\Site\Page3\identification.php on line 33.

-( ! ) Notice: Trying to get property of non-object in C:\Program Files\wamp\www\Site\Page3\identification.php on line 33
0
thevinou Messages postés 1007 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
6 mars 2012 à 16:53
No database selected -> tu n'as pas choisi la base sur laquelle la requête doit être faite!
0
thevinou Messages postés 1007 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
6 mars 2012 à 16:55
Tu crées une connexion $bdd et tu ne l'utilises pas, donc il te dit que tu n'es pas connecté a un base !
0
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 2
6 mars 2012 à 17:27
Merci d'avoir répondu thevinou, qu'est-ce qu'il faut que je fasse pour que j'y sois connecté?
Désolé je suis encore un débutant, je ne sais pas trop comment m'y prendre :)
0