Session的配置
在php.ini中,有许多和Session相关的配置,其中常用的配置如表1所示。
表1 php.ini中关于Session的配置项
配置项 | 含义 |
---|---|
session.name | 指定Cookie的名字,只能由字母数字组成,默认为PHPSESSID |
session.save_path | 读取或设置当前会话文件的保存路径,默认为“C:\Windows\Temp” |
session.auto_start | 指定是否在请求开始时自动启动一个会话,默认为0(不启动) |
session.cookie_lifetime | 以秒数指定发送到浏览器的Cookie生命周期,默认为0(直到关闭浏览器) |
session.cookie_path | 指定要设定会话Cookie的路径,默认为“/” |
session.cookie_domain | 指定要设定会话Cookie的域名,默认为无 |
session.cookie_secure | 指定是否仅通过安全连接发送Cookie,默认为off |
session.cookie_httponly | 指定是否仅通过HTTP访问Cookie,默认为off |
从PHP 7.0版本开始,可以在程序中通过session_start()函数的参数对Session进行配置,用于覆盖php.ini中对应的Session配置指令,示例代码如下。
session_start(['name' => 'MySESSID']);
上述代码表示将“session.name”的配置项的值修改为“MySESSID”。通过示例可以看出,session_start()函数接收关联数组形式的参数,数组的键名不包括“session.”,直接书写其后的配置项名称。
需要注意的是,session_start()函数对配置项的修改只在PHP脚本的运行周期内有效,并不影响php.ini中的原有设置。