解决方案 »

  1.   

    你 再次发送请求 是怎么发的?session 只生存于打开的页面中,一旦页面被关闭(离开了这个网站)session 就失效了
      

  2.   

    session创不创建是你控制的,看你的代码
      

  3.   

    第一次请求:
            执行一个登录操作,然后向session存储一个‘is_login=1’的变量,最后服务器端会产生一个存有该信息的session文件。
    第二次请求:
            我访问另一个页面的时候,我会在检查_SESSION中是否有is_login=1的变量,从而判断用户是否已经登录。
            但是第二次访问时,_SESSION中并没有is_login这个变量。
    这是为什么?
      

  4.   

    a.php<?php
    session_start();
    $_SESSION['islogin'] = 1;
    ?>
    b.php<?php
    session_start();
    if($_SESSION['islogin']){
    echo 'sessionid:'.session_id();
    echo 'ok';
    }else{
    echo 'no';
    }
    ?>
    看看b.php 输出的sessionid是否每次都一样,如果每次都同就有问题。
      

  5.   

    上一帖打少个字。如果sessionid每次输出都不同,就是有问题。
    正常应该在没有关闭浏览器的情况下,每次都是相同的
      

  6.   

    非常感谢大家的热心帮助!
    通过测试,我发现问题出现在下面这段代码,但不清楚为什么。        @ini_set('session.cookie_domain', $subdomain_suffix);
    session_start();
    当在session_start(),之前调用ini_set()时,就不能创建名称为PHPSESSID,内容为session id 的cookie,造成服务器无法识别两次请求是否来自同一个用户,从而会以新的id创建session.
      

  7.   

    session.cookie_domain 是用来设定 sessionid 在 cookie 中的域的
    而 cookie 是不跨域的,你动态修改了,当然就不行了