oui, il faut securiser ton code, sinon tu te retrouve avec du sql injection ^^.
autrement dit, je peux rentrer sur ton site rien qu'en voyant ta requete, sans avoir de login et password...
Alors faut faire super gaffe...
De plus, evite les balise <meta>, c'est pas terrible.
Tu as deja un header("Location: xxx.php"), alors utilise les meme pour rafrachir la page actuelle, c'est un peu plus propre :)
Pense aussi a mettre un exit(0); juste apres le header();, comme ca, pas besoin de continuer a faire des verif sur le restant du script et de la page :)
Enfin, tu peux tout simplement faire pour la requete:
<?php
$sql = "
SELECT
login,
pass
FROM
membres
WHERE
login = '$login' AND
pass = '$pass'
";
?>
ensuite, tu verifie que $req est different de 0, et si c'est le cas, c'est que c'est le bon login et password.
Pas besoin de faire un fetch_assoc puisque le user a deja fait saisi le login et password.
d'ou:
<?php
$req = mysql_query($sql, $connection) or die('error making query '.$sql.''.mysql_error());
// On teste s'il trouve bien le login rentrée
if($req !== 0)
{
$_SESSION['login'] = $login;
$_SESSION['pass'] = $pass;
header ('Location: page_membre.php');
}
else
{
echo 'Votre login ou votre pass ne sont pas bons';
echo '<meta http-equiv="refresh" content="0;URL=login.html">';
}
?>
Voila, je précise aussi que votre enchainement n'est pas logique ;)
S'il ne trouve pas le login, on va a la page inscription. (1ere indication pour une personne malveillante: ce login existe pas...)
Si le login existe mais pas le bon mot de passe, hop, on met un message 'Login ou Pass incorect', et ca, c'est pas logique, vu que dans ce cas la, une personne malveillante saura forcément que c'est le pass qui n'est pas bon.
Enfin, pour terminer, il est inutile de stocker le password en session, et c'est meme plutot dangereux.
Car si une personne malveillante trouve le moyen de recup l'info, dans ce cas il a le mot de passe. Bon, celui ci est hashé en md5(), certe, mais on peut toujours faire trouver un dico des équivalence md5()/mot en clair.
Le login suffit, et a la limite, un nombre aléatoire ^^.
D'ailleur, pour le login, c'est pas terrible non plus, le pseudo serait plus logique, et moins dangereux.
Un utilisateur basique mettra bien souvent un login/password identique.
(j'ai fait le test avec mon patron, ca a marché :D)
Donc voila voila, gaffe a la securité, car une session de login, c'est toujours un point sensible, et plus le site fonctionnera, plus on tentera de l'attaquer...
KeitaroSan