一、SESSION中的几个常用函数
1、session_start() 启动新会话或者重用现有会话
session_start()
会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。
开启session,并生成session_id,创建服务器端会话数据
要使用基于 cookie 的会话, 必须在输出开始之前调用 session_start() 函数。
2、session_name()
session.name设置会话的名称,即在客户端用作cookie的标示符名称。默认值为PHPSESSID
/* 设置会话名称为 WebsiteID */
$previous_name = session_name("WebsiteID");
3、session_id() 获取/设置当前会话 ID
-
session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")
-
如果指定了 id 参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数
- 为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 获取以字符串格式表达的会话名称和 ID
4、session_destroy 销毁一个会话中的全部数据
session_destroy()
销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。 如果需要再次使用会话变量, 必须重新调用 session_start()
函数
二、php.ini中关于session的配置
1、session.auto_start
是否自动启动session,0表示禁止,1表示开启,默认不启动。 我们知道在使用session功能时,我们基本上在每个php脚本头部都会通过session_start()函数来启动session,如果你启动这个选项,则在每个脚本头部都会自动启动session,不需要每个脚本头部都以session_start()函数启动session,推荐关闭这个选项,采用默认值
2、session.save_path
session.save_path用于设置会话在服务存储路径。默认值为/tmp
3、session.use_cookies
session.use_cookies用于设置是否允许在客户端使用cookie会话,默认值为1,表示允许
4、session.use_only_cookies
是否仅仅使用cookie在客户端保存会话sessionid,这个选项可以使管理员禁止用户通过URL来传递id,默认为0,如果禁用的话,客户端如果禁用Cookie将使session无法工作
5、session.gc_divisor
定义在每次初始化会话时,启动垃圾回收程序的概率。计算公式如下:session.gc_probability/session.gc_divisor
,比如1/100,表示有1%的概率启动启动垃圾回收程序,对会话页面访问越频繁,概率就应当越小。建议值为1/1000~5000。