所以我相当新的PHP,但我试图创建一个简单的登录系统。PHP登录盐不起作用
我现在所面临的问题是,由于某种原因,第二个SQL语句失败,或者什么都不回馈。
这里是我使用的代码。
include 'dbConn.php';
if(isset($_POST['submit']))
{
global $conn;
$username = $_POST['username'];
$password = $_POST['password'];
$saltSql = "SELECT salt FROM users WHERE email = '$username'";
$saltRes = $conn->query($saltSql);
while($resRow = $saltRes->fetch_assoc()){
$salt = $resRow['salt'];
}
$saltedHash = hash("sha512", ($password . $salt));
$sql = "SELECT email, role, FROM users WHERE email = '$username' AND password = '$saltedHash'";
$res = $conn->query($sql);
if($res->num_rows == 1)
{
//Logged in succesfully
echo "Logged in!";
}
else
{
//Something went wrong
echo "Something went wrong";
}
$conn->close();
}
当我尝试手动执行在phpMyAdmin第二个查询我得到这个错误:#1064 - 你在你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行的'FROM users WHERE email ='username'AND password ='5111109d49bc1'附近使用正确的语法。
我真的很感谢这方面的帮助。
你能添加错误信息吗?这将有助于找到解决问题的办法。 – AlexVogel
也许会添加您收到的错误消息,这很可能是由于您的盐可能导致SQL语法错误 – Panda