2014-08-31 161 views
-1

MySQL不會從表中獲取數據;爲什麼我的代碼不工作?MySQL不會從表中獲取數據

我想檢查密碼是否正確,但由於某種原因它不會得到密碼。我還應該注意到,這段代碼適用於Windows VPS,但現在我使用的是Ubuntu 14,它不起作用。我已經嘗試了chmod 777,但是這也沒有幫助。任何想法,我可以做什麼?

if(isset($_COOKIE['user'])){ 
    $username = mysql_real_escape_string($_COOKIE['user']); 
    mysql_connect($dbhost, $dbuser, $dbpass)or error("Could not connect: ".mysql_error()); 
    mysql_select_db($dbname) or error(mysql_error()); 
    $result = mysql_query("SELECT `id`, `username`, `password`, `ranks`, `active` FROM $table WHERE username='$username'") or die (mysql_error()); 
    list($id,$username,$password,$rank,$active) = mysql_fetch_row($result); 
    if($_COOKIE['pass'] == $password) { 
     $display = "Hello, $username!"; 
    } else { 
     $display = "Invalid Password, attempted post data fail?"; 
    } 
} else { 
    $display = "You are not logged in!"; 
} 
+3

**不要明文存儲密碼**。 – SLaks 2014-08-31 20:27:17

+0

你的HTML看起來像什麼?我想你需要$ _POST數組中的值,而不是cookie。 – Marciano 2014-08-31 20:41:02

+0

清除你的撇號 - >'mysql_query(「SELECT id,username,password,ranks,active FROM $ table WHERE username ='$ username'」)' – 2014-08-31 20:41:12

回答

0

嘗試:

$result = mysql_query("SELECT `id`, `username`, `password`, `ranks`, `active` FROM $table WHERE username='{$username}'") or die (mysql_error()); 

如果它不會工作,告訴我怎麼你在用戶表中插入的東西。 password上沒有使用PASSWORD()功能嗎?

如果你沒有,試試這個:

$pass = $_COOKIE['pass']; 
$result = mysql_query("SELECT `id`, `username`, `password`, `ranks`, `active` FROM $table WHERE username='{$username}' and password=PASSWORD('{$pass}')") or die (mysql_error()); 
if($result) { 
    list($id,$username,$password,$rank,$active) = mysql_fetch_row($result); 
    $display = "Hello, $username!"; 
} else { 
    $display = "You are not logged in!"; 
}