/*
NE JAMAIS INJECTER DIRECTEMENT LES VARIABLES RECUPEREES PAR $_POST !!!
Au minimum, echapper les données reçues avec mysql_real_escape_string()
*/
if (isset($_POST['login']) AND
isset($_POST['pass']) AND
$_POST['login']!=
NULL AND
$_POST['pass']!=
NULL){ $_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
}
//on utilise enregistre les variables de la session dans d'autres variable
/*
Mais si $_POST['login'] n'est pas défini (ou est nul) $_SESSION['login'] n'est pas défini
=> risque, au moins d'erreur...
Autant utiliser directement les variables de session
*/
$login = $_SESSION['login'];
$pass= $_SESSION['pass'];
/*
Eviter le SELECT *
Il vaut mieux preciser les colonnes qu'on va chercher.
*/
$reponse =
mysql_query("SELECT * FROM user WHERE login = '$login' " );
//requete qui va cherche l'utilisateur et le mot de passe
/*
Non, elle va juste chercher l'utilisateur
*/
while ($donnees =
mysql_fetch_array($reponse) )// On fait une boucle pour lister tout ce que contient la table : {
/*
Comme quoi ce n'était pas utile de commencer par mettre $_POST[login] dans la session !
*/
$_SESSION['login'] = $donnees['login'];
$_SESSION['id_user'] = $donnees['id_user'];
$_SESSION['pass'] = $donnees['pass'];
$nom = $donnees['login'];
$passw = $donnees['pass'];
}
/*
Pourquoi tu ne mets pas directement la condition sur le password dans la clause WHERE ?
Comme ça, si la requête ne renvoie rien, c'est qu'il y a un pb avec login ou pwd.
Et sinon, elle renvoie un unique enregistrement.
Là, il y a un risque si plusieurs users ont le même login - ce qui ne devrait pas arriver...
*/
if ($pass == $passw AND $passw != NULL) {
}
Else
{
header("Location: ".
$url.
"identification.php" );
// on l'envoi se connecter sur la page qui va bien $_SESSION['messageident'] = "Erreur d'identification, veuillez vérifier vos identifiants";
}