在我使用PHP的情况下,SESSION失效就两个原因:
1、程序问题——没有写SESSION_START(),以为服务器自动启动SESSION(看来你的不是这个)
2、服务器配置问题——有时候就是很奇怪的,不知道具体是哪里没有配置好,基本出现在Windows平台。建议重新配置服务器,或者在正常的服务器上面尝试一下

解决方案 »

  1.   

    1. 设置register_globals=off
    2. 在b.php的session_start()前加上session_id("admin")
      

  2.   

    <?php
       session_start(); 
       $_SESSION["admin"]="abc";
       echo $_SESSION["admin"];
    echo "<a href=b.php>session</a>";
    ?>
     显示正常b.php<?php
     session_start(); 
     echo $_SESSION["admin"];
    ?>
      

  3.   

    a.php<?php
       session_start(); 
       setcookie("PHPSESSID",session_id());
       $_SESSION["admin"]="abc";
       echo $_SESSION["admin"];
    ?>
    b.php<?php
     session_start(); 
     echo $_SESSION["admin"];
    ?>
      

  4.   

    上述各位的解决方案我都试了一下,还是没用,现将php.ini中session设置贴一下,请各位指教:[Session]session.save_handler = filessession.save_path = "d:/php/temp/"session.use_cookies = 1session.name = PHPSESSIDsession.auto_start = 0
    .
    session.cookie_lifetime = 0session.cookie_path ="d:/php/sessiondata"session.cookie_domain =session.serialize_handler = phpsession.gc_probability = 1
    session.gc_divisor     = 100session.gc_maxlifetime = 1440session.bug_compat_42 = 0
    session.bug_compat_warn = 1session.referer_check = 1session.entropy_length = 0session.entropy_file =session.cache_limiter = nocachesession.cache_expire = 180session.use_trans_sid = 0session.hash_function = 0session.hash_bits_per_character = 4url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
      

  5.   


    session.cookie_path ="d:/php/sessiondata"
    恢复成原始的
    session.cookie_path = /这个路径是指cookie变量在网站中的作用路径,“/”表示整个网站中都有效
    而你设置的“d:/php/sessiondata”不可能出现在任何网站路径中,所以php的session的id不会被传递,因此session失效
      

  6.   

    记得在PHP4.0XX (忘记了具体是哪个版本),在一页面设置了session,用JS跳转到另一个页面,(是否打开新窗口或者本页直接跳转是一样的),,session 就会丢失,在手册里有人向PHP开发组提出了这个BUG。在后续的版本中解决了这个问题。  
    我不知道楼主是不是这个情况。
      

  7.   

    我也是和你一样的问题,按五楼的方法试了一下,居然OK了。
    真是万分感谢!!!
    不知道大家解决没有??
    <?php
    session_id("user");
    session_start();
    echo $_SESSION["user"];
    ?>