[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
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.
;
; The path can be defined 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.
; http://php.net/session.save-path
;session.save_path = "/tmp"; Whether to use cookies.
; http://php.net/session.use-cookies
session.use_cookies = 1; http://php.net/session.cookie-secure
;session.cookie_secure =; This option forces PHP to fetch and use a cookie for storing and maintaining
; the session id. We encourage this operation as it's very helpful in combatting
; session hijacking when not specifying and managing your own session id. It is
; not the end all be all of session hijacking defense, but it's a good start.
; http://php.net/session.use-only-cookies
session.use_only_cookies = 1; Name of the session (used as cookie name).
; http://php.net/session.name
session.name = PHPSESSID; Initialize session on request startup.
; http://php.net/session.auto-start
session.auto_start = 0; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0; The path for which the cookie is valid.
; http://php.net/session.cookie-path
 session.cookie_path = /; The domain for which the cookie is valid.
; http://php.net/session.cookie-domain
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.
; http://php.net/session.cookie-httponly
session.cookie_httponly =; Handler used to serialize data.  php is the standard serializer of PHP.
; http://php.net/session.serialize-handler
session.serialize_handler = php; Defines the probability that the 'garbage collection' process is started
; on every session initialization. The probability is calculated by using
; gc_probability/gc_divisor. Where session.gc_probability is the numerator
; and gc_divisor is the denominator in the equation. Setting this value to 1
; when the session.gc_divisor value is 100 will give you approximately a 1% chance
; the gc will run on any give request.
; Default Value: 1
; Development Value: 1
; Production Value: 1
; http://php.net/session.gc-probability
session.gc_probability = 1; Defines the probability that the 'garbage collection' process is started on every
; session initialization. The probability is calculated by using the following equation:
; gc_probability/gc_divisor. Where session.gc_probability is the numerator and
; session.gc_divisor is the denominator in the equation. Setting this value to 1
; when the session.gc_divisor value is 100 will give you approximately a 1% chance
; the gc will run on any give request. Increasing this value to 1000 will give you
; a 0.1% chance the gc will run on any give request. For high volume production servers,
; this is a more efficient approach.
; Default Value: 100
; Development Value: 1000; Production Value: 1000
; http://php.net/session.gc-divisor
session.gc_divisor = 1000; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
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):
;          find /path/to/sessions -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, even when 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. This feature
; introduces some serious security problems if not handled correctly. It's
; recommended that you do not use this feature on production servers. But you
; should enable this on development servers and enable the warning as well. If you
; do not enable the feature on development servers, you won't be warned when it's
; used and debugging errors caused by this can be difficult to track down.
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/session.bug-compat-42
session.bug_compat_42 = Off; This setting controls whether or not you are warned by PHP when initializing a
; session value into the global space. session.bug_compat_42 must be enabled before
; these warnings can be issued by PHP. See the directive above for more information.
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/session.bug-compat-warn
session.bug_compat_warn = Off; 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.
; http://php.net/session.referer-check
session.referer_check =; How many bytes to read from the file.
; http://php.net/session.entropy-length
session.entropy_length = 0; Specified here to create the session id.
; http://php.net/session.entropy-file
; On systems that don't have /dev/urandom /dev/arandom can be used
; On windows, setting the entropy_length setting will activate the 
; Windows random source (using the CryptoAPI)
;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.
; http://php.net/session.cache-limiter
session.cache_limiter = nocache; Document expires after n minutes.
; http://php.net/session.cache-expire
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.
; http://php.net/session.use-trans-sid
session.use_trans_sid = 0; Select a hash function for use in generating session ids.
; Possible Values
;   0  (MD5 128 bits)
;   1  (SHA-1 160 bits)
; This option may also be set to the name of any hash function supported by
; the hash extension. A list of available hashes is returned by the hash_algos()
; function.
; http://php.net/session.hash-function
session.hash_function = 0; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
; Possible values:
;   4  (4 bits: 0-9, a-f)
;   5  (5 bits: 0-9, a-v)
;   6  (6 bits: 0-9, a-z, A-Z, "-", ",")
; Default Value: 4
; Development Value: 5
; Production Value: 5
; http://php.net/session.hash-bits-per-character
session.hash_bits_per_character = 5; 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.
; Default Value: "a=href,area=href,frame=src,form=,fieldset="
; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
; http://php.net/url-rewriter.tags
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

解决方案 »

  1.   

    补充问题:
    session保存的路径正确,文件包可读可写,生成的session文件也是可读写的,可是却读取不到session的值,session_id都已经取得正确了,这是什么原因?另外,此现象是在本地计算机上没有问题,本地是xp系统,在iis下面配置的php环境
    服务器上就会出现取不到验证码的问题。服务器2003xp统,也是在iis下配置php环境,php版本是5.35,mysql版本是5.58。
    只是服务器禁用了很多的函数,究竟是哪个函数的问题,请大家指点一下。disable_functions = exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,proc_open,popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen,com以前有个函数不能用,就是在这里找到的问题,现在不知道这里有没有问题了
    此问题补充:
    只我本地电脑,一清理cookies以后,就再也登录不了。三四天了,那个站一直登录不了。其它同事的,可以正常登录,但是也是把cookies清理以后用不了了。
    我的本地电脑cookies没有禁用。
      

  2.   

    你贴出来的是你自己机器上的还是服务器上的 php.ini 片段?你的 session.save_path 没有配置,将使用 C:\windows\temp 做 session 临时目录,你在该目录下看到 sess 打头的文件了吗?(注意是服务器上)
      

  3.   

    是服务器的片段
    在程序中设置了session存储目录,目录的读写权限都正常,取得session的时候,可以取到session_id
    但是session数组为空。经过跟踪生成的相应的session文件,文件内信息正确。生成的文件读写权限正常。
    @session_start(); 已经开启
      

  4.   

    function GetCkVdValue()
    {
    @session_start();
    global $sessSavePath,$_SESSION;
    echo "<script>alert('".$_SESSION['securimage_code_value']."');</script>";
    $codes = $_SESSION['securimage_code_value'];
    return $codes;
    }
    js弹出的为空,js输出的地方是我加的,为了测式是否有值。
    用同样的方法测得session_id有值,跟生成的session文件对应。
      

  5.   

    没看到设置 session_save_path 的代码
      

  6.   

    全局变量 $sessSavePath 的作用是什么?
    从名称上看是保存 session 临时文件的目录,为什么不用呢?
    session_save_path( $sessSavePath );
    session_start();
      

  7.   

    设过了你还 @session_start(); 干什么?
      

  8.   

    @session_start(); 是系统自带的
    我去掉过试了,也不错,加上也不行,所以就让他一直加着了。
    我的是dedecms系统
      

  9.   

    哦,那你在 session_start 前面执行一下 session_save_path 看看
    echo session_save_path();
    @session_start(); 
      

  10.   

    设置路径就是在session_start之前执行了,而且路径也正确,读写权限也都有的。
    而且也生成了session文件,并且文件内容跟客户端显示的验证码一样,但是再用session去读取的时候,就取不到值了,再次说明,生成的文件权限也可读写。
      

  11.   

    唯一让我觉得不一样的地方,就是本地的调试的时候,刷新页面,sessionid是不变化的,只有内容发生变化,而在网上,每刷新页面,就生成一个session文件。请问这个地方,在服务器上怎么修改,是不是这个地方的问题呢?id对应里面的内容
      

  12.   

    不好意思,呵呵
    如果不加global $sessSavePath;的话,是取不到路径的,加了就可以取到
    另外,在session_start 之前加输出路径的,也与global $sessSavePath;有关,加了能取到,不加取不到