下面是我的简单login.php代码,我创建了一个用户
用户邮件:管理员用户通行证: admin123
但是每当我尝试用管理帐户登录时,它都会忽略if语句并打开homepage.php,这可能是什么问题,谢谢。
<?php
$connection = mysql_connect("localhost","user","password") or die("Could not connect to the database");
mysql_select_db("nisbet", $connection);
error_reporting(0);
if($_POST['login']){
if($_POST['usermail'] && $_POST['userpass']){
$usermail = mysql_real_escape_string($_POST['usermail']);
$userpass = mysql_real_escape_string(hash("sha512",$_POST['userpass']));
$user = mysql_fetch_array(mysql_query("SELECT * FROM `user` WHERE `usermail` = '$usermail'"));
if($user == 0){
die("User does not exits <a href='index.php'>← Back</a>");
}
if($user['userpass'] != $userpass){
die("Incorrect password! <a href='index.php'>← Back</a>");
}
//die("You are now logged in as $usermail !");
if($user['usermail'] == 'admin' && $user['userpass'] == 'admin123'){
header('Location: adminpage.php');
}else{
header('Location: homepage.php');
}
}
}发布于 2015-05-10 19:18:54
$userpass变量包含提交密码的散列,因此将其与"admin123“进行比较是行不通的。
您应该将其与"admin123“的哈希进行比较,或者不再进行第二次比较,因为您之前已经在代码中这样做过。
https://stackoverflow.com/questions/30155616
复制相似问题