一个php会话变量导致重定向的会话设置为undefined
问题描述:
我正在使用Javascript和PHP的Facebook sdk将日志整合到我的网站(托管在本地主机上)。一个php会话变量导致重定向的会话设置为undefined
Facebook的初始化和获得访问令牌后的代码:
if(fbidExists($profile['id']) == true)
{
$query = "SELECT userid AS id, username FROM users WHERE fbid = ". $profile['id'] ;
$login = mysqli_fetch_assoc(mysqli_query($GLOBALS['connection'], $query));
$_SESSION['id'] = $login['id'];
$_SESSION['username'] = $login['username'];
header("Location: http:\\\\localhost\website\\");
exit();
}
问题: 重定向后没有会话变量每当我使用$login['username']
,否则会话变量传递。
如果我更改SQL查询并将username
替换为任何其他列,则没有问题,并且可以在重定向后看到会话变量。例如: $query = "SELECT userid AS id, email FROM users WHERE fbid = ". $profile['id'] ; $_SESSION['username'] = $profile['email']
创建没有问题
的$_SESSION['username']
变量可以通过其他的文件很容易地设置且不会产生问题(当我使用它与我自己的登录)
在MySQL username
是varchar
型我的在每个页面上使用session_start()
,在标题后使用exit()
。
答
感谢您的帮助。 原来,这是一个问题,因为在第二个脚本中没有设置变量中的一个正在销毁会话。
您是否收到错误?你也可以'var_dump($ _ SESSION)',这会告诉你更多...... – Nytrix
为什么\,URLs使用'/'。 – AbraCadaver
您也正在** **'SQL注入'开放**!请确保您使用准备好的语句。 – Nytrix