PHP会话在PHP5中不工作

PHP会话在PHP5中不工作,php,session,Php,Session,我有两个页面:login.php和index.php。两页都以开头 session_start(); 当我设定 $_SESSION['user'] = "name"; 在login.php和open index.php中,我的会话对象为空。为什么 编辑: 我发现了问题:IE 7。我必须有权访问我的域名。但是,我认为会话存储在服务器上,而不是客户端?为什么我可以访问我的域名?()这里没有太多信息,我会尝试使用我的灵力 用户登录后,是否设置会话变量,然后使用http头将用户重定向到index.

我有两个页面:login.php和index.php。两页都以开头

session_start();
当我设定

$_SESSION['user'] = "name"; 
在login.php和open index.php中,我的会话对象为空。为什么

编辑:


我发现了问题:IE 7。我必须有权访问我的域名。但是,我认为会话存储在服务器上,而不是客户端?为什么我可以访问我的域名?()

这里没有太多信息,我会尝试使用我的灵力

用户登录后,是否设置会话变量,然后使用http头将用户重定向到index.php?如果是这样,我认为会话cookie不会发送给用户。如果是这种情况,解决方案是:

  • 最初显示登录表单时调用会话_start()(不仅仅是在用户发回后);或:
  • 显示“login successful!”消息,然后通过元刷新重定向,或者只提供指向index.php的链接

  • 您还可以尝试在两个页面上转储会话ID,以查看是否以某种方式启动新会话:

    echo 'Session ID is: ' . SID . "<br/>\n"
    
    echo“会话ID为:”。希德。“
    \n”
    在调用session_start()之前,您需要验证cookie是否已启用,并且没有任何内容(包括归档文件开头或结尾的空行)发送到浏览器

    我以为会话存储在服务器上,而不是客户端?为什么我有IE授权访问我的域名?()

    会话的工作方式是为站点存储会话cookie,其中包含您的会话ID。服务器知道您是谁的唯一方式是在每次页面加载时读取会话ID cookie。每个用户的所有$\u会话数据都存储在服务器上,但必须设置cookie,以便服务器知道要检索哪个$\u会话数据


    这也是为什么如果您获得了另一个用户的会话id cookie,您实际上可以“成为”另一个用户。

    Internet Explorer比大多数其他浏览器有更严格的cookie策略。检查您的(另请参见),并尽可能用显式值替换默认值。此外,您可能会发送一个[fake P3P policy](假的P3P策略),以满足Internet Explorer的要求。

    可能php.ini中的此变量正在映射到现有路径


    session.save_path=“c:/error/path”

    我身上发生了一些事情,可能会对某人有所帮助。我的会话工作不正常。IE 8和Firefox正在丢失会话信息

    我包含了一个文件。包含的文件在尾随&ques?>


    那个回车开始了会话。我把session\u start放在include.BOOM之后。

    这信息太少了。你启用了cookie吗?你激活了错误报告吗?有没有显示任何错误/警告?很好。我在FireFox中检查,它确实起作用。但是在IE 7中它不起作用。可能与c有关ookies?啊,thnx,这说明了问题!但是IE7有解决这个问题的方法吗?只要启用cookies就可以了。今天的大多数网站都会因为禁用cookies而崩溃,我不认为这是一个你需要担心的情况。thnx,当我打印(会话获取cookie参数)时,我看到了这个:数组([生命周期]=>0[路径]=>/[域]=>[安全]=>[httponly]=>)我如何才能做到这一点?我如何发送一个伪造的p3p策略?我在GoogleSet
    会话中找不到它。cookie\u domain
    到你想在其中使用cookie的域。而紧凑的p3p策略可以通过
    header
    函数发送。
    会话。cookie\u domain
    必须在php.ini中设置?如果是,我没有访问权限。不,您可以使用
    ini\u set
    session\u set\u cookie\u params
    功能进行设置。请参阅中的“可更改”列