在一个a.test.com的站点登陆后写了几个SESSION,登陆后用HEAD转向到另一个页面main.php,在HEAD之前打出来的SESSION都存在,可是到了main.php这个页面后SESSION就都丢了(打印出来的值都是空的)。但是奇怪的是点击main.php这个页面中的连接到其他的页面如C.PHP,在C.PHP这个页面也要验证那几个SESSION值,在C.PHP打印那几个SESSION值都有。
注:1:我在main.php页面中已经SESSION_START(),并且在SESSION_START()上面也加了session_id(SID);
2:login.php --->ini_set('session.cookie_domain','.test.com');

解决方案 »

  1.   

    mrshelly(Shelly) :
        setcookie('PHPSESSID',session_id()); write login.php?
      
     
      

  2.   

    解决了 在LOGIN.PHP上面也加session_id(SID);就解决了
    奇怪 为什么呢?
      

  3.   

    SESSION是没必要去设置setcookie('PHPSESSID',session_id())的,默认的时候已经就被浏览器设置,除非客户端不支持Cookie。但是a页面和c页面都可以,那么应该不是Session的问题,而是你main页面的问题。检查一下,你的main页面,是不是有重新设置session,是不是同一个域,是不是又嵌入其它的页面,而其它的页面里面有对session的操作。试着在main页面session_start()后面print_r一下session变量,然后将print_r语句逐渐后移,至到发没session变量为空为止,找到原因所在!