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

时间:2012-07-29 05:06:55

标签: php mysql forms

现在我坚持更新密码区域,我尝试输入新密码,然后点击更新按钮,但是在数据库没有更新的情况下,这里的任何人都可以帮助我在哪里出错?

这是我的更新声明

    $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>

2 个答案:

答案 0 :(得分:2)

名为emailtm的输入元素在哪里?在您的表单中,您尚未包含它。所以可能是问题所在。

您尚未包含在表单中,但是您正在通过$_POST在您的php代码中访问它!

$_POST是一个关联数组,它包含您通过表单提交的输入元素的名称 - 值对。

答案 1 :(得分:0)

如果您还可以查看apache日志文件以查看是否有任何错误,那将会很棒。不知何故,我发现你需要在查询中用引号括起password和password_hidden的值。

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