PHP 会话不通过多个页面保存变量


PHP Session not saving variables through multiple pages

好的,所以我的代码来验证用户并将其登录到他们的帐户。我的用户验证代码是一个单独的文件,没有 HTML,只有 PHP。然后它会将 true 或 false 回显到我的主页,如果为 true,则会在用户登录时将它们重定向到主页。我的登录文件如下:

while ($row = mysql_fetch_array($res)){ 
if ($row['password'] == $pass){
echo "true";
session_start();
$_SESSION["username"] = $user;
} else {
echo "false";
}
}

如果代码回显为 true,javascript 代码将使用 window.location 重定向它们。在他们得到的页面上,home.php,PHP代码(不是html)看起来像这样:

<?php session_start(); ?>
<script>
var ses = "<?php echo $_SESSION["username"]; ?>";
console.log(ses);
</script>

出于某种原因,它不记录任何内容。它仍然记录,但它记录一个空白变量。如果有人能帮忙,那就太神奇了!谢谢。

您需要

移动echo语句。在 session_start() 之前不能有任何输出。所以它应该是:

session_start();
echo "true";

请参阅如何修复 PHP 中的"标头已发送"错误