2012-07-29 23 views
0

現在我堅持更新密碼區域,我嘗試鍵入新密碼,然後點擊更新按鈕,但在數據庫未更新,任何人都可以幫助我在哪裏出錯?PHP密碼更新表單不寫入數據庫

這是我更新

$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

在哪裏輸入元素命名emailtm?在你的表格中,你沒有包含它。所以可能是這個問題。

您尚未包含在表單中,但您通過$_POST在您的php代碼中訪問它!

$_POST是一個關聯數組,其中包含通過表單提交的輸入元素的名稱 - 值對。

+0

我已經編輯了我的代碼,但仍然沒有解決。我的密碼不在數據庫中更新。 – mastersuse 2012-07-29 10:54:11

+0

在您的HTML表單中回覆您的舊密碼,可能不是一個好主意。無論如何,你有沒有嘗試過調試代碼。我的意思是,回顯'$ _POST ['password']'和另一個字段來檢查兩者是否都是正確的值。 – 2012-07-29 11:05:41

+0

你有一個想法如何查看用戶舊密碼,並在同一時間用戶可以更新他們的新密碼作爲我的代碼上面? – mastersuse 2012-09-05 17:44:03

0

如果您還可以查看apache日誌文件以查看是否有任何錯誤,那將會很棒。不知何故,我看到你需要在你的查詢中引用密碼和password_hidden的引號。

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