我是数据库的新手。我的问题是我想用他/她的安全代码更新用户密码。用户在注册时输入安全代码。(任何地方/城市/朋友/叔叔等的名称)。我创建了名为table的表details
FNAME
LNAME
PASS
BDAY
EMAIL
CODES(//users security code)
我有一个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即使在coloumn CODES中存在用户安全代码 任何帮助都会非常感谢。
答案 0 :(得分:2)
UPDATE/INSERT/DELETE
未提供结果集,因此您无法使用mysql_fetch_assoc
检索结果。
SELECT
查询仅提供结果集。
你必须以这种方式检查
if($query) {
// query executed successfully
} else {
// query not executed successfully
}
OR
if(mysql_affected_rows() > 0) {
// query executed successfully
} else {
// query not executed successfully
}
答案 1 :(得分:0)
$pass = some_type_of_security($_POST['pass']);
SELECT ... FROM ... WHERE codes=:codes AND user=:user
如果行数等于1则
UPDATE table SET pass=:pass WHERE user=:user
我建议将PDO用于数据库操作