首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用salt登录PHP不起作用

使用salt登录PHP不起作用
EN

Stack Overflow用户
提问于 2016-02-29 10:36:20
回答 1查看 67关注 0票数 0

因此,我对PHP相当陌生,但我正在尝试创建一个简单的登录系统。

我现在遇到的问题是,由于某种原因,第二条SQL语句失败了,或者没有返回任何信息。

这是我使用的代码。

代码语言:javascript
复制
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”use 'FROM = 'username‘和password = '5111109d49bc1’。

我真的很想在这方面提供一些帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-29 10:42:26

你的问题似乎是:

代码语言:javascript
复制
$sql = "SELECT email, role, FROM users WHERE email = '$username' AND password = '$saltedHash'"
--------------------------^

您有一个额外的逗号,,它会导致您的SQL查询崩溃。移除它,它就会起作用:

代码语言:javascript
复制
$sql = "SELECT email, role FROM users WHERE email = '$username' AND password = '$saltedHash'"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35697389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档