我已经设置了一个登录脚本,它似乎可以很好地运行
我的问题是下面的代码不起作用:
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 ) )
您需要访问数组的user
部分中的username
键。因此:
$sql = "SELECT * from users where username = '".$_SESSION['user']['username'] ."'";
否则,您将只尝试访问数组,并持有所有的id、用户名和电子邮件密钥。正如所指出的,由于SQL注入,永远不要这样做。
你应该使用PDO。如果你的Web服务器不支持它,至少在之前用mysql_real_eescape_string()转义你的字符串
$sql = "SELECT * from users where username = '". mysql_real_escape_string($_SESSION['user']['username']) ."'";
试试这个:
$sql = "SELECT * from users where username = '".$_SESSION['user']['username']."'";