2014-08-31 101 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!"; 
}