Mammouth du PHP |
2278 Messages
05 mars 2012, 15:45
j'avais commencé à rajouter des contrôles; mais pour être à l'aise, j'avais sorti les $_POST[ ] des if, puis j'ai trouvé plus simple de remplacer le if elseif else par un switch...
$login = isset ($_POST['login']) ? $_POST['login'] : "";
$pass = isset ($_POST['pass']) ? $_POST['pass'] : "";
if (($login != "") and ($pass!= "") )
{
mysql_connect ("localhost", "root","");
// on teste si une entrée de la base contient ce couple login / pass
$login_echappe = mysql_escape_string($login);
$pass_code = md5(mysql_escape_string($pass));
$sql = "SELECT count(*) FROM membre WHERE `login`='$login_echappe' AND `pass_md5`='$pass_code'";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
$nb_comptes = $data[0];
switch ($nb_comptes)
{
case 0:
$erreur = 'Compte non reconnu.';
break;
case 1:
session_start();
$_SESSION['login'] = $login;
header('Location: logo.php');
exit();
break;
default:
$erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
break;
}
}
else
{
$erreur = 'Au moins un des champs est vide.';
}
}
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD