和SESSION相关的函数和配置

一、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

  1. session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")

  2. 如果指定了 id 参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数

  3. 为了能够将会话 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