我已经设置了一个似乎正常的登录脚本
我遇到的问题是以下代码无效:
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 ) )
答案 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']."'";