Problème PHP et mySQL identification membre

Résolu
shoub-tcy Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -  
shoub-tcy Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   -
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

Utilisateur anonyme
 
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   Statut Membre Dernière intervention   2
 
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
 
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   Statut Membre Dernière intervention   2
 
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
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   2
 
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 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
No database selected -> tu n'as pas choisi la base sur laquelle la requête doit être faite!
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
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   Statut Membre Dernière intervention   2
 
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