唉,如今我一看到session就头大。我这里从来没有出过问题..

解决方案 »

  1.   

    楼上的兄台,我们在头大也得把它搞清楚啊,不然今天别想睡觉了!help me.
      

  2.   

    可是我现在想回去了。session.bug_compat_42 = 1
    session.bug_compat_warn = 0这样不行吗?
      

  3.   

    贴出你的php.ini里面session想关的和phpinfo()显示的session相关的信息来
    明天看看。
      

  4.   

    php.ini:
    [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
    session.save_path = c:/tmp; Whether to use cookies.
    session.use_cookies = 1; 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 = 0; The path for which the cookie is valid.
    session.cookie_path = /; The domain for which the cookie is valid.
    session.cookie_domain =; 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     = 100; 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 seperately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled.session.bug_compat_42 = 1
    session.bug_compat_warn = 0; 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; 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="
      

  5.   

    phpinfo:
    session.auto_start On On 
    session.bug_compat_42 On On 
    session.bug_compat_warn On On 
    session.cache_expire 180 180 
    session.cache_limiter nocache nocache 
    session.cookie_domain no value no value 
    session.cookie_lifetime 0 0 
    session.cookie_path / / 
    session.cookie_secure Off Off 
    session.entropy_file no value no value 
    session.entropy_length 0 0 
    session.gc_divisor 100 100 
    session.gc_maxlifetime 1440 1440 
    session.gc_probability 1 1 
    session.name PHPSESSID PHPSESSID 
    session.referer_check no value no value 
    session.save_handler files files 
    session.save_path c:/tmp c:/tmp 
    session.serialize_handler php php 
    session.use_cookies On On 
    session.use_only_cookies Off Off 
    session.use_trans_sid Off Off 
      

  6.   

    session.bug_compat_warn On On 这个好像没有生效啊,根据php.ini他应该是off吧?
      

  7.   

    我这里改成你的配置也没发显示你的错误,真实没办法。我发现好多session的问题都跟xp有关,可惜xp我没用过。
      

  8.   

    好象你不应该用这么用吧Session_register('a');$_SESSION["a"] = "";
      

  9.   

    我还是按照上面的设置,把apache重新启动一次就可以了,真不知道是怎么回事!
      

  10.   

    赞同楼上的我记得如果是模块方式,需要重启动web服务的,因为他只有启动服务的时候读取一次配置文件;
    cgi方式好像不是这样的。
      

  11.   

    对了,我现在还是用的session_register,程序没有报错,看一些资料说这样程序会报错,不知道自己该不该庆幸?
    晕哦!
      

  12.   

    Session_register('a');
    这样子用没有问题阿。照样可以注册变量。