一个 php session 变量导致在重定向时取消设置 session

One php session variable causing unsetting session on redirect

我正在使用 Javascript 和 PHP Facebook sdk 的组合来集成登录到我的网站(托管在本地主机上)。

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'] 时都没有 session 变量,否则 session 变量正在传输。

如果我更改 SQL 查询并将 username 替换为任何其他列,则没有问题,我可以在重定向后看到 session 变量。例如 : $query = "SELECT userid AS id, email FROM users WHERE fbid = ". $profile['id'] ; $_SESSION['username'] = $profile['email'] 没问题

$_SESSION['username'] 变量可以通过其他文件轻松设置并且不会产生任何问题(当我在自己的登录中使用它时)

MySQL 中的

usernamevarchar 类型,我在每个页面上使用 session_start(),在 header 之后使用 exit()

感谢您的帮助。 事实证明这是一个问题,因为在第二个脚本中没有设置变量,这会破坏会话。