我正在使用php / mysql测试密码更新过程。我在提交时没有收到任何错误,但我的值没有更新。有什么想法吗?
if (!empty($_POST['password']) && !empty($_POST['password2'])){
$id = $_GET['id'];
$password = md5(mysql_real_escape_string($_POST['password']));
$sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = '$id'");
if ($sql){
echo $password, $id;
}else{
echo mysql_error();
}
}
答案 0 :(得分:1)
只是预感。尝试删除变量$id
:
if (!empty($_POST['password']) && !empty($_POST['password2'])){
$id = $_GET['id'];
$password = md5(mysql_real_escape_string($_POST['password']));
$sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = {$id}");
if ($sql){
echo $password, $id;
}else{
echo mysql_error();
}
}
答案 1 :(得分:1)
您已合并$_GET
和$_POST
。尝试将$_GET['id']
更改为$_POST['id']
。如果这不起作用,请尝试添加
var_dump( $_POST );
var_dump( $_GET );
代码。这可能有助于你调试。
答案 2 :(得分:0)
这似乎有效:
$id = $_REQUEST['id'];
if (!empty($_POST['password']) && !empty($_POST['password2'])){
$password = md5(mysql_real_escape_string($_POST['password']));
$sql = mysql_query("UPDATE users SET Password = '".$password."' WHERE UserID = '".$id."'");
if ($sql){
echo "Password reset.";
echo "<meta http-equiv='refresh' content='1;index.php' />";
}else{
echo mysql_error();
}
}else{
?>
<form role="form" action="[Leave blank]" method="post" name="resetpassword" id="resetpassword">
答案 3 :(得分:0)
mysql_real_escape_string
返回TRUE/FALSE
就像这样使用它
if(mysql_real_escape_string($_POST['password']))
{
$password = md5($_POST['password']);
}
它现在可以使用了!
建议:
走一条路。 GET或POST
答案 4 :(得分:-2)
您尝试更新的ID是否正确?