使用标头时无法在PHP中检索会话变量(“位置:

使用标头时无法在PHP中检索会话变量(“位置:,php,header,session-variables,Php,Header,Session Variables,一旦用户在登录页面上提供用户名和密码,它就会被提交到另一个具有- session_start(); $_SESSION['username']=$_POST["username"]; 根据一些验证,页面将根据下面的代码重定向到不同的页面 session_write_close(); /* Redirect browser */ header("Location: ../menu.php"); 然后,在menu.php上,我所要做的就是- <?php session_start();

一旦用户在登录页面上提供用户名和密码,它就会被提交到另一个具有-

session_start();
$_SESSION['username']=$_POST["username"];
根据一些验证,页面将根据下面的代码重定向到不同的页面

session_write_close();
/* Redirect browser */
header("Location: ../menu.php");
然后,在menu.php上,我所要做的就是-

<?php 
session_start();
echo "User is ".$_SESSION['username']; 
?>


但它不起作用:(.虽然在同一页上工作,但在重定向后不起作用。尝试使用setcookie等,但运气不佳。感谢任何帮助!!

根据标题位置,我认为您正在重定向到父文件夹。如果您不定义cookie路径和域,这将导致会话出错。
这可以通过以下函数实现:

摆脱
会话写入关闭();
不工作不符合问题要求。@j08691,在没有会话写入关闭()的情况下尝试但这不起作用@hakre,为什么它不符合一个问题?因为你没有指定它不起作用时的样子,你没有告诉它起作用时的含义,也没有告诉你为什么认为它应该起作用。这需要先进行基本调试-请执行
错误报告(~0);ini\u集('display\u errors',1)
在脚本的最开始。此外,您应该检查并遵循错误日志。我已经尝试了基本调试。如果我可以解决它,就不会将它放在这里。在我看到的日志中,PHP注意:未定义索引:username,但是如果我检查并回显$\u SESSION['username]的值;在同一个页面上工作。它不允许我放置url,因此必须放置…但它是同一个文件夹。