我正在使用Javascript和PHP Facebook sdk的组合将登录集成到我的网站(托管在localhost上)。
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']
变量可以通过其他文件轻松设置,并且没有任何问题(当我在自己的登录中使用它时)
username
属于varchar
类型,我在每个页面使用session_start()
,在标题后使用exit()
。
答案 0 :(得分:0)
感谢您的帮助。 事实证明这是一个问题,因为在第二个脚本中没有设置一个正在破坏会话的变量。