我下面的教程,Creating a Secure Login System the Right Way,有關如何創建一個登錄系統。在代碼中,他們對用戶名字段使用mysql_real_escape_string
將它傳遞給數據庫的查詢,即前,在MySQL中選擇時是否需要使用我的'sql_real_escape_string'?
$username = mysql_real_escape_string($username);
這是必要的,因爲我不添加任何東西到數據庫中,我只是檢查,如果該用戶已經存在?
的原因,我不只是把它留在反正就是當我使用上面的代碼,它使得我的文字空白,所以發送一個空字符串到數據庫中。我不知道這是爲什麼,所以我想,如果我可以放棄它,我會的。
下面是有關數據庫連接的建議是開放從評論者(密碼等被改變):
function dbConnect(){
$connection = mysql_connect('localhost', 'username', 'password');
$database=mysql_select_db('database', $connection);
return $connection;
}
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password);
$username = mysql_real_escape_string($username);
$query = mysql_query("SELECT *
FROM members
WHERE username = '$username'
AND password = '$password'",dbConnect());
查詢可以取消或標記爲註釋的,另一種可能是由於該附加。嵌套查詢(子查詢)也可能起作用,所以通過來自外部源的sql傳遞的每個數據都應該被驗證和/或消毒。 – Hajo
好的謝謝。請你回答第二部分,爲什麼會讓我的字符串變空? – Nicola
'mysql_real_escape_string()'只會在$ username爲空時纔會返回空白。問題在於別處。 –