Итак, я довольно новичок в 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, для правильного синтаксиса для использования рядом с 'FROM users WHERE email =' username 'AND password =' 5111109d49bc1 'в строке 1.
Я бы очень признателен за помощь в этом.
Вы можете добавить текст сообщения? Это поможет найти решение вашей проблемы. – AlexVogel
Возможно, добавьте сообщение об ошибке, которое вы получите, это, скорее всего, из-за вашей соли, которая могла вызвать синтаксическую ошибку SQL. – Panda