Php 如何使用用户的唯一安全代码从数据库更新密码

Php 如何使用用户的唯一安全代码从数据库更新密码,php,mysql,database,Php,Mysql,Database,我不熟悉数据库。我的问题是,我想用用户的安全码更新用户密码。在这里,用户将在注册时输入安全码。任何地点/城市/朋友/叔叔的姓名等。我已创建了命名详细信息表 我有一个php文件可以检查这一点,但是,Secured.php出现了一些问题: <? $CODES = $_POST['CoDes']; $PASS = $_POST['pass']; mysql_connect('localhost','user','pass'); mysql_selectdb('userdb') or die(m

我不熟悉数据库。我的问题是,我想用用户的安全码更新用户密码。在这里,用户将在注册时输入安全码。任何地点/城市/朋友/叔叔的姓名等。我已创建了命名详细信息表

我有一个php文件可以检查这一点,但是,Secured.php出现了一些问题:

<? $CODES = $_POST['CoDes'];
$PASS = $_POST['pass'];

mysql_connect('localhost','user','pass');
mysql_selectdb('userdb') or die(mysql_error());

$query = mysql_query(sprintf("UPDATE `details` SET PASS = '$PASS' WHERE CODES = '$CODES'"));   
mysql_real_escape_string($CODES) or die(mysql_error()); while($row = mysql_fetch_assoc($query))
{$rows[1] = $row;}
if(empty($rows[1][CODES]))
{ header("Location: http://localhost/Error.html"); }
else{
echo "Welcome,";
echo " your password has changed successfully to $PASS";
}
?>
<b>You can login</b><a href="http://localhost/login.html><em> here.</em></a><br> 
<img src="http://localhost/images/logo.gif">
这个页面没有给我任何php错误,但会转到/Error.html,即使用户的安全代码存在于Column代码中 任何帮助都会非常感谢。

更新/插入/删除不会提供resultset,因此您无法使用mysql\u fetch\u assoc检索结果

SELECT查询仅提供结果集

你必须这样检查

if($query) {
    // query executed successfully
} else {
    // query not executed successfully
}

如果行数等于1,则

UPDATE table SET pass=:pass WHERE user=:user

我建议您使用您正在使用且应该使用的数据库操作。除了SQL注入之外:永远不要在不散列密码的情况下保存密码,永远不要打印密码以供确认。另外,在发布代码时,永远不要使用真实的URL,尤其是与安全相关的内容。是的,关于真实的URL和安全风险,你是100%正确的,但我是一名学习者,肯定会删除帖子代码并使用非常安全的选项。下次到达时一定会小心。谢谢-马里奥。非常感谢你的第二个代码正确地完成了我的工作。也从您那里获得了更多关于resultset的知识&我的代码中有什么错误。再次感谢
if(mysql_affected_rows() > 0) {
    // query executed successfully
} else {
    // query not executed successfully
}
$pass = some_type_of_security($_POST['pass']);

SELECT ... FROM ... WHERE codes=:codes AND user=:user
UPDATE table SET pass=:pass WHERE user=:user