PHP会话“SELECT * from users where username ='”。$ _ SESSION ['user']。“'”;

时间:2013-07-08 11:27:56

标签: php

我已经设置了一个似乎正常的登录脚本

我遇到的问题是以下代码无效:

session_start(); 

$sql = "SELECT * from users where username = '".$_SESSION['user']."'";

while( $row = mysql_fetch_assoc($query) )
{
    echo "<tr><td>$row[username]</td>";
    echo "<td>$row[email]</td>";
    echo "<td>$row[id]</td>";
}

如果我输出

session_start(); 
Print_r ($_SESSION);

我得到了

Array ( [user] => Array ( [id] => 1 [username] => craig [email] => craig@craig.com ) ) 

2 个答案:

答案 0 :(得分:9)

您需要访问阵列username部分中的user键。就这样:

$sql = "SELECT * from users where username = '".$_SESSION['user']['username'] ."'";

否则您只会尝试访问数组,并保留所有ID,用户名和电子邮件密钥。 正如所指出的那样,由于SQL注入,从不这样做。

你应该使用PDO。如果您的网络服务器不支持它,至少在使用mysql_real_escape_string()之前转义字符串:

$sql = "SELECT * from users where username = '". mysql_real_escape_string($_SESSION['user']['username']) ."'";

答案 1 :(得分:1)

试试这个:

 $sql = "SELECT * from users where username = '".$_SESSION['user']['username']."'";