Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP密码更新表单未写入数据库_Php_Mysql_Forms - Fatal编程技术网

PHP密码更新表单未写入数据库

PHP密码更新表单未写入数据库,php,mysql,forms,Php,Mysql,Forms,现在我停留在更新密码区,我尝试输入新密码,然后我点击更新按钮,但在数据库未更新,这里的任何人都可以帮助我哪里是错误 这是我的更新声明 $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_P

现在我停留在更新密码区,我尝试输入新密码,然后我点击更新按钮,但在数据库未更新,这里的任何人都可以帮助我哪里是错误

这是我的更新声明

    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }

    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE user SET password=%s WHERE password_hidden=%s",
                       GetSQLValueString($_POST['password'], "text"),
                       GetSQLValueString($_POST['password_hidden'], "text"));
这是我的表格

<form method="POST" name="form1" action="<?php echo $editFormAction; ?>">
<table border="0" align="center">
      <tr>
        <td width="130"><span class="style5">New Password</span></td>
        <td width="15"><div align="center" class="style5">:</div></td>
        <td ><label><input name="password" type="password" id="password" tabindex="1" value="<?php echo $row_chgpswd['password']; ?>" size="20" />
        <input name="password_hidden" type="hidden" value="<?php echo $row_chgpswd['password_hidden']; ?>" />
        </label>
        </td>
      </tr>
      <tr>
        <td height="26">&nbsp;</td>
        <td>&nbsp;</td>
        <td><div align="right">
          <input type="submit" name="button" id="button" value="Change Password" tabindex="3"/>
        </div>
        </td>
      </tr>
</table>
<input type="hidden" name="MM_update" value="form1">
</form>

名为
emailtm
的输入元素在哪里?在你的表格中,你没有包括它。所以这可能就是问题所在

您尚未将其包含在表单中,但您正在通过
$\u POST
在php代码中访问它


$\u POST
是一个关联数组,其中包含通过表单提交的输入元素的名称-值对。

如果您还可以查看apache日志文件以查看是否存在任何错误,那就太好了。不知何故,我发现您需要在查询中用引号将password和password_的值括起来

$updateSQL = sprintf("UPDATE user SET password='%s' WHERE password_hidden='%s'",
                   GetSQLValueString($_POST['password'], "text"),
                   GetSQLValueString($_POST['password_hidden'], "text"));

我已经在上面编辑了我的代码,但仍然没有解决。我的密码未在数据库中更新。在HTML表单中回显旧密码可能不是一个好主意。不管怎样,你试过调试代码了吗。我的意思是,回显
$\u POST['password']
和其他字段以检查两者是否都是正确的值。您知道如何查看用户旧密码,同时用户可以将其新密码更新为上面的我的密码吗?如果您希望向用户显示其旧密码,请从您的数据库中获取并将其存储在变量中。然后回应它。此外,如果希望同时显示oldpassword和newpassword(就在用户更新之后),则必须在(旧密码的)获取部分之后为更新部分编写代码。但我不建议将密码存储在数据库中。存储用户密码的最佳方法是对其进行散列并存储散列值。更好的保护!