2012-09-25 84 views
-4

我們如何在QUERY中的PHP中傳遞密碼。在SQL查詢中傳遞密碼值?

我想這樣的事情,但我得到一個語法錯誤。

$query = "INSERT INTO users (name, username, email, password) VALUES ('".$_REQUEST['fullname']."','".$_REQUEST['userid']."','"$_REQUEST['mailid']."','".$_REQUEST['userpassword']."')";

有在上面的代碼,這我無法找出一些錯誤。我相信,密碼不能簡單地像這樣發送。

以下是錯誤:

Parse error: syntax error, unexpected '$_REQUEST' (T_VARIABLE)

+3

它與作爲密碼的字符串無關,這是一個簡單的語法錯誤,應該通過任何語法感知編輯器突出顯示。請停止使用古代的mysql_ *函數編寫新的代碼。他們不再被維護,社區已經開始[棄用流程](http://news.php.net/php.internals/53799)。相反,您應該瞭解準備好的語句並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。如果你關心學習,[這裏是一個很好的PDO相關教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – DCoder

+0

我對PDO提供第二個DCoders建議。此外,我強烈建議您閱讀密碼的單向哈希加密,如果您還沒有。 –

回答

1

錯誤:

'"$_REQUEST['mailid']

變化對

'" . $_REQUEST['mailid']

  1. 更好的方法使用prepared statements將從用戶接收的數據插入數據庫;
  2. 使用md5() PHP function作爲存儲密碼,不要在沒有實際編碼的情況下存儲它;
+1

而'password'必須是'\'密碼'',因爲它是SQL中的保留字。 – CappY

+1

我建議使用bcrypt而不是md5來存儲密碼。 –

+0

如果您使用MD5對密碼進行哈希處理,您最好將它們保存爲純文本格式。 –