你的SESSION配置部分贴出来看看
还有你的SESSION部分的代码。
还有就是你的配置文件中session.gc_maxlifetime是不是设置太短了

解决方案 »

  1.   

    [Session]
    ; Handler used to store/retrieve data.
    session.save_handler = files; Argument passed to save_handler.  In the case of files, this is the path
    ; where data files are stored. Note: Windows users have to change this
    ; variable in order to use PHP's session functions.
    ;
    ; As of PHP 4.0.1, you can define the path as:
    ;
    ;     session.save_path = "N;/path"
    ;
    ; where N is an integer.  Instead of storing all the session files in
    ; /path, what this will do is use subdirectories N-levels deep, and
    ; store the session data in those directories.  This is useful if you
    ; or your OS have problems with lots of files in one directory, and is
    ; a more efficient layout for servers that handle lots of sessions.
    ;
    ; NOTE 1: PHP will not create this directory structure automatically.
    ;         You can use the script in the ext/session dir for that purpose.
    ; NOTE 2: See the section on garbage collection below if you choose to
    ;         use subdirectories for session storage
    ;
    ; The file storage module creates files using mode 600 by default.
    ; You can change that by using
    ;
    ;     session.save_path = "N;MODE;/path"
    ;
    ; where MODE is the octal representation of the mode. Note that this
    ; does not overwrite the process's umask.
    session.save_path = "/server/php/tmp"; Whether to use cookies.
    session.use_cookies = 1;session.cookie_secure =
    ; This option enables administrators to make their users invulnerable to
    ; attacks which involve passing session ids in URLs; defaults to 0.
    ; session.use_only_cookies = 1; Name of the session (used as cookie name).
    session.name = PHPSESSID; Initialize session on request startup.
    session.auto_start = 1; Lifetime in seconds of cookie or, if 0, until browser is restarted.
    session.cookie_lifetime = 999999; The path for which the cookie is valid.
    session.cookie_path = /; The domain for which the cookie is valid.
    session.cookie_domain =; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
    session.cookie_httponly =; Handler used to serialize data.  php is the standard serializer of PHP.
    session.serialize_handler = php; Define the probability that the 'garbage collection' process is started
    ; on every session initialization.
    ; The probability is calculated by using gc_probability/gc_divisor,
    ; e.g. 1/100 means there is a 1% chance that the GC process starts
    ; on each request.session.gc_probability = 1
    session.gc_divisor     = 1000
    ; After this number of seconds, stored data will be seen as 'garbage' and
    ; cleaned up by the garbage collection process.
    session.gc_maxlifetime = 1440; NOTE: If you are using the subdirectory option for storing session files
    ;       (see session.save_path above), then garbage collection does *not*
    ;       happen automatically.  You will need to do your own garbage
    ;       collection through a shell script, cron entry, or some other method.
    ;       For example, the following script would is the equivalent of
    ;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
    ;          cd /path/to/sessions; find -cmin +24 | xargs rm; PHP 4.2 and less have an undocumented feature/bug that allows you to
    ; to initialize a session variable in the global scope, albeit register_globals
    ; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning separately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled.session.bug_compat_42 = 1
    session.bug_compat_warn = 1; Check HTTP Referer to invalidate externally stored URLs containing ids.
    ; HTTP_REFERER has to contain this substring for the session to be
    ; considered as valid.
    session.referer_check =; How many bytes to read from the file.
    session.entropy_length = 0; Specified here to create the session id.
    session.entropy_file =;session.entropy_length = 16;session.entropy_file = /dev/urandom; Set to {nocache,private,public,} to determine HTTP caching aspects
    ; or leave this empty to avoid sending anti-caching headers.
    session.cache_limiter = nocache; Document expires after n minutes.
    session.cache_expire = 180; trans sid support is disabled by default.
    ; Use of trans sid may risk your users security.
    ; Use this option with caution.
    ; - User may send URL contains active session ID
    ;   to other person via. email/irc/etc.
    ; - URL that contains active session ID may be stored
    ;   in publically accessible computer.
    ; - User may access your site with the same session ID
    ;   always using URL stored in browser's history or books.
    session.use_trans_sid = 0; Select a hash function
    ; 0: MD5   (128 bits)
    ; 1: SHA-1 (160 bits)
    session.hash_function = 0; Define how many bits are stored in each character when converting
    ; the binary hash data to something readable.
    ;
    ; 4 bits: 0-9, a-f
    ; 5 bits: 0-9, a-v
    ; 6 bits: 0-9, a-z, A-Z, "-", ","
    session.hash_bits_per_character = 4
    ; The URL rewriter will look for URLs in a defined set of HTML tags.
    ; form/fieldset are special; if you include them here, the rewriter will
    ; add a hidden <input> field with the info which is otherwise appended
    ; to URLs.  If you want XHTML conformity, remove the form entry.
    ; Note that all valid entries require a "=", even if no value follows.
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
      

  2.   

    以上是我的php.ini关于session的部分,测试代码我已经可以精简到
    <?
    session_start();
    ?>这么一句就可以了
      

  3.   


    session.auto_start = 1

    就不需要 session_start(); 了,否则会有问题
      

  4.   

    应该不是这个问题,我把session.auto_start 改成0了,还是有问题,我的测试代码
    如下
    /////////////test.php
    <?
    //session_start();//这行隐掉不隐掉都不行
    $_SESSION["test"]="asdf";
    echo($_SESSION["test"]);//当前页面可以得到session值
    ?>
    <a href="test2.php">link</a>
    ////////////test2.php
    <?
    echo($_SESSION["test"]);//这个页面得不到值
    ?>
      

  5.   

    你改了之后记得要重新启动APACHE
      

  6.   

    当然会重启了。现在还是每执行一次session_start();就会新建一个临时文件,郁闷阿
      

  7.   

    这个好象不是问题吧!!我以前测试过,在本地服务器上有一大堆这样的文件只要有session_start()
    就会生成一个新的id
      

  8.   

    是问题,我就遇到了我现在测试就是这样,我在windows下一个客户端无论怎样刷新页面只能生成同一个文件,不同客户端访问才能生成不同的文件。我的linux下就不行,刷新一次就生成一个新文件:(
      

  9.   

    <?
    session_start();
    $_SESSION["test"]="asdf";
    echo($_SESSION["test"]);//当前页面可以得到session值
    ?>
    <a href="test2.php">link</a>test2.php如下:
    <?
    session_start();
    echo($_SESSION["test"]);//这个页面得不到值
    ?>
      

  10.   

    session.auto_start = 0或session.auto_start = 1
    上面我试了下都可以得到
      

  11.   

    都说了你去掉SESSION_START函数了.
      

  12.   

    SESSION_START去掉或是不去掉,session.auto_start = 0或 1我都测试过了,都不行的,我最终目的是要在链接页面后取得session的值,去掉SESSION_START是不生成文件了,但是session还是得不到........
      

  13.   

    windows正常,linux不正常,那就有可能是你linux下的浏览器的问题了...客户端考虑windows的就行啦......
      

  14.   

    我发现了重要线索:就是我用了virtualhost才出现的这个问题,如果用ip+端口访问的话就没有问题,这是为什么呢?
      

  15.   

    和这个问题应该是一样的,http://www.phpx.com/happy/thread-120030-1-1.html,有没有高人阿
      

  16.   

    经过几天折腾,我终于找到问题拉.hehe