J'ai mis le signup.php avec le mot de passe md5 crypté et cela fonctionne bien quand je l'ai vérifié à phpmyadmin mais quand j'applique le md5 à la login.php il ne correspond pas aux mots de passe? il dit toujours mauvais mot de passe pourrait être la syntaxe, mais nous ne pouvions pas le comprendre ...md5 mots de passe ne correspondent pas
signup.php
if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "")
$error = "Not all fields were entered<br /><br />";
else
{
if (mysql_num_rows(queryMysql("SELECT * FROM members
WHERE user='$user'")))
$error = "That username already exists<br /><br />";
else
{
queryMysql("INSERT INTO members VALUES('$user', '".md5('$pass')."')");
die("<h4>Account created</h4>Please Log in.<br /><br />");
}
}
}
login.php
if(isset($_POST['user'])) {
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "") {
$error = "Not all fields were entered<br />";
} else {
$query = "SELECT user,pass FROM members WHERE user = '$user' AND pass = \'\".md5('$pass').\"\'";
if(mysql_num_rows(queryMysql($query)) == 0) {
$error = "<span class='error'>Username/Password invalid</span><br /><br />";
} else {
$_SESSION['user'] = $user;
$_SESSION['pass'] = $pass;
die("You are now logged in. Please <a href='society.php?view=$user'>" .
"click here</a> to continue.<br /><br />");
}
}
}
Il y a une différence entre [les chaînes entre guillemets entre guillemets simples et doubles en PHP] (http://www.php.net/manual/en/language .types.string.php). – Gumbo
MD5 est ** cassé ** pour le hachage des mots de passe. [Voir cet article] (http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords). –
Ce que vous faites est extrêmement dangereux. Vous êtes ** largement ouvert ** à l'injection SQL, et vous ** serez piraté ** si vous ne l'avez pas déjà été. Apprenez à utiliser des requêtes préparées/paramétrées avec PDO ou similaire. – Brad