一个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 usernamevarchar型我的在每个页面上使用session_start(),在标题后使用exit()

+0

您是否收到错误?你也可以'var_dump($ _ SESSION)',这会告诉你更多...... – Nytrix

+0

为什么\,URLs使用'/'。 – AbraCadaver

+0

您也正在** **'SQL注入'开放**!请确保您使用准备好的语句。 – Nytrix

感谢您的帮助。 原来,这是一个问题,因为在第二个脚本中没有设置变量中的一个正在销毁会话。