我正在尝试使用以下脚本更新用户密码,但是我只是收到以下错误。我现在只使用PHP和MySQL大约2个月,所以我仍然是初学者,所以我非常感谢有关我的下面代码的任何评论。提前感谢您的帮助。
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 '(密码,盐)VALUES附近( 第1行'fcf829e6c3478752799b7d49798a14640f110dd4f8767'
<?php
//Pull in form info
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];
//Chrck if the 2 password fields match
if($pass1 != $pass2) {
header('Location: ../admin/pass-change.php?pw=notmatched');
die();
}
//encrypts the password
$hash = hash('sha256', $pass1);
//creates a 3 character sequence
function createSalt()
{
$string = md5(uniqid(rand(), true));
return substr($string, 0, 3);
}
$salt = createSalt();
$hash = hash('sha256', $salt . $hash);
//initialise connection with databse
require_once('../Connections/EliteGrooming.php');
mysql_select_db($database_EliteGrooming, $EliteGrooming);
//Execute the query
$username = $_SESSION['username'];
$query = "UPDATE admin_users (password, salt)
VALUES ( '$hash', '$salt' )
WHERE username = '$username';";
mysql_query($query) or die(mysql_error());;
mysql_close();
header('Location: ../admin/pass-change.php?PassChanged');
?>
答案 0 :(得分:3)
UPDATE admin_users
SET password = '$hash',
salt = '$salt'
WHERE username = '$username'
请注意,您的查询容易被SQL Injection
攻击,请参阅下面的文章
答案 1 :(得分:-1)
在我看来,输入密码在输入之前和之后都添加了。翻译你正在进入数据库:
$query = "UPDATE admin_users (password, salt)
VALUES ( ''f124782349023589270365fhjdhf2893'', '$salt' )
WHERE username = '$username';";
我说这是因为它只返回一个值输入。那或你的盐没有找到。
编辑:上面说得对。你错过了SET命令。