par
Max2000 » 28 nov. 2014, 12:42
J'ai effectivement lu ceci:
http://php.net/manual/fr/pdostatement.r ... ample-1026
Mais je n'ai pas tout compris.Et comme il est nécessaire de bien tout comprendre pour mener à bien une tâche particulière, j'ai dû abandonner cette solution qui consiste à compter ce qui est sélectionné.
Car compter ça va.Mais c'est le traitement du comptage au final qui est le plus difficile.
Par contre j'ai trouvé une autre solution qui consiste à établir une comparaison des pseudos et des mots de passe en utilisant une boucle while pour autoriser l'accès à un espace membre.
Cela fonctionne. Bien que sans doute plus compliqué que ta solution.
Cependant j'aimerai bien suivre ton conseil concernant la sécurité sur les injections.Mais lorsque je présente ce code:
$req = $bdd->query ("SELECT * FROM users WHERE username='$pseudo' AND password='$password'". $bdd->quote($_POST['pseudo']) . " AND password=" . $bdd->quote($_POST['pseudo']));
Le message suivant apparait:
Nom d'utilisateur ou mot de passe incorrect
Peux tu m'en donner la raison?
Merci
<?php
session_start();
if(isset($_POST['submit']))
{
$pseudo = htmlspecialchars(trim($_POST['pseudo']));
$password = htmlspecialchars(trim($_POST['password']));
if(empty($pseudo))
{
echo"Veuillez saisir votre pseudo<br/>";
}else if(empty($password))
{
echo"Veuillez saisir votre mot de passe";
}else
try
{
$bdd = new PDO('mysql:host=localhost;dbname=phpmembre', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$password = md5($password);
$req = $bdd->query ("SELECT * FROM users WHERE username='$pseudo' AND password='$password'");
while($row = $req->fetch())
{
if ($row['username']==$pseudo);
{
if ($row['password']==$password);
{
$_SESSION['pseudo'] = $pseudo;
header('Location:membre.php');
}
}
}echo "Nom d'utilisateur ou mot de passe incorrect";
$req->closeCursor();
}
?>
<h1>Connexion</h1>
<form method="post" action="">
<p>Votre pseudo</p>
<input type="text" name="pseudo" /><br/>
<p>Votre mot de passe</p>
<input type="password" name="password" /><br/><br/>
<input type="submit" name="submit" value="Se connecter" />
</form>
<a href="register.php">Pas encore membre</a>