Je suis entrain de créer un site internet mais à un moment je dois traiter les informations des utilisateurs pour qu'ils puissent se connecter. (pour créer leurs comptes il n'y a pas de problème mais c'est juste pour se connecter). Le problème d'après moi viendrait des lignes suivante :
$resultat = $bdd->query('SELECT pseudo, pass, email, adresse, ville, postal, pays FROM membres WHERE pseudo=\''.$pseudo.'\' ');
while ($donnes = $resultat->fetch())
Car là ça fait que je récupérer les réponse de la requête SQL et que pour chaque passage ça regarde si le pseudo entré == pseudo qui est dans la bdd et de même avec le mdp. Mais le problème c'est que le while est exécuté pour tout les pseudos de la bdd donc le if renverra false donc on passera au else qui stoppera la requête SQL car on sera renvoyé sur une nouvelle page alors que tout les pseudos de la bdd n'ont pas été vérifié. J'aimerais savoir comment récupéré un seul résultat d'une requête SQL (et si possible que ça ne soit pas un array <?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=IATF', 'root', '', array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
session_start();
// On récupére les informations envoyé.
$pseudo = htmlspecialchars($_POST['pseudo']);
$pass = htmlspecialchars($_POST['pass']);
// On fait une requête SQL pour vérifier les données du pseudo entré.
$resultat = $bdd->query('SELECT pseudo, pass, email, adresse, ville, postal, pays FROM membres WHERE pseudo=\''.$pseudo.'\' ');
while ($donnes = $resultat->fetch())
{
// On demande si le pseudo et le mot de passe existe dans la bdd.
if ($pseudo == $donnes['pseudo'] AND $pass == $donnes['pass'])
{
// connection réussie !
// On donne les données nécessaire pour la section profil.
$_SESSION['pseudo'] = $pseudo;
$_SESSION['email'] = $donnes['email'];
$_SESSION['adresse'] = $donnes['adresse'];
$_SESSION['ville'] = $donnes['ville'];
$_SESSION['postal'] = $donnes['postal'];
$_SESSION['pays'] = $donnes['pays'];
// On redirige vers l'accueil.
header('Location: index.php');
}
else
{
// pseudo ou mot de passe incorect !
// On redirige vers une page où il sera indiqué que le mdp || le pseudo n'est pas correct.
header('Location: incorrect.php');
}
}
$resultat->closeCursor();
?>
Cordialement,aenarion