2011-07-11 46 views
0

有人可以指出我如何保存默認密碼,如果它是空白的? 其更新問題。當用戶更新他們的個人資料時,我正在製作更新頁面。 它是一個長期的個人資料。我沒有發佈所有這裏因爲我唯一的問題是密碼字段。 即使它留作空白,它仍然更新數據庫上的字段。我使用md5進行加密。以下是代碼。請添加代碼和代碼。謝謝。php更新密碼或保存爲空如果它是空的

id = 1,因爲我只是測試它。我只在userstest表中有一個數據。

$desire= $_POST['desired'];//username field 
    $password = md5(trim(mysql_prep($_POST['password'])));//password field 
    $passconfirm = md5(trim(mysql_prep($_POST['confirmpassword']))); //confirmpasswor field 
    $sql = mysql_query("UPDATE userstest SET username = '$desire',password='$password',confirmpassword='$passconfirm' WHERE id=1"); 
    if(mysql_affected_rows()==1){ 
    echo "Update Successfull"; 
    }else{ 
    echo "Update Failed" . mysql_error(); 
    } 

回答

0

如果這些字段爲空不更新passwordconfirmpassword列。在這種情況下,不要將它們添加到SQL查詢中。

順便說一句,你爲什麼保存confirmpassword?不應該總是和password一樣嗎?它通常只用於PHP腳本中的if語句,以查看用戶沒有輸入錯誤。

+0

好的。如果用戶更新密碼字段,該怎麼辦?我的意思是應該有一個用戶權利的選項?如果更新密碼字段,那麼它將被更新。如果不是,並且它是空白的,那麼默認密碼仍將被保存。 – keyframer

+0

你的想法解決了我的問題。我做了一個if else語句並使用空關鍵字。如果密碼是空的,我沒有將其包含在update.otherwise,如果它不是空的,它將被更新。但是,然後我移動了MySql語句中的md5關鍵字,並做了訣竅:)。謝謝。 – keyframer

1

添加if條件,同時建立查詢

$sql = "UPDATE userstest SET username = '$desire'"; 
if($password) {$sql += ",password='$password',confirmpassword='$passconfirm'";} 
$sql += " WHERE id=1"; 

然後運行查詢的mysql_query($的SQL);

+0

我試試你的代碼。是的,密碼字段不會更新,但與上述註釋相同。如果用戶更新密碼字段怎麼樣? – keyframer

+0

在這種情況下$密碼不是空的,所以它會將其附加到您的查詢 –

+0

謝謝先生。我感謝您的幫助 :) – keyframer

相關問題