php中session工夫设定浅析
![](/uploads/allimg/200930/5ed1b4391577915910946.jpg)
php中session时间设定详解
1. 客户端没有制止Cookie
(1)使用session_set_cookie_params()设定 Session失效时间,此函数是 Session 结合 Cookie设定失效时间。假如要让 Session 在一分钟后失效,其代码示例如下所示:
<?php $time = 1*60; //设定session失效时间 session_set_cookie_params($time); // 使用函数 session_start(); //初始化 session $_SESSION["username"] = 'tom'; ?>
留意: session_set_cookie_params() 必需要在 session_start()此前调取。
说明:不引荐使用此函数,此函数在一些阅读器上会显现问题。 所以一样会用手动设定失效时间。
(2)使用 setcookie()函数可对 Session 设定失效时间,要让 Session 在一分钟后失效,其代码示例如下所示:
<?php session_start(); // session失效时间 $time = 1*60; // 使用 setcookie 手动设定 session失效时间 setcookie(session_name(),session_id(),time()+$time.'/'); $_SESSION["username"] = 'tom'; ?>
说明: 在上例代码 setcookie()函数中,session_name 是 Session的名称, session_id 是推断客户端会员的标识,由于 session_id 是随机发生的独一名称, 所以Session 是相对平安的。失效时间和 Cookie 的失效时间一样,最后一个参数为可选参数,是放置 Cookie 的途径。
2. 客户端制止Cookie
当客户端禁用 Cookie 时, Session页面间传递会失效,可以将客户端制止 Cookie 想象成一家大型连锁超市,假如在其中一家超市内办理了会员卡, 但是超市之间没有联网,那么会员卡就只能在办理的那家超市使用。 如何解决这个问题有以下的几种办法可供选中:
(1)在登陆此前提示会员必需翻开 Cookie,这是许多论坛的做法。
(2)设定php.ini 文件中的 session.use_trans_sid =1,或者编译时翻开 -enable-trans-sid 选项,让PHP主动跨页面传递 session_id。
(3)通过 GET办法,潜藏表单传递 session_id。
(4)使用文件或者数据库储备 session_id,在页面间传递中手动调取。
以上第2种办法不做具体的介绍,由于会员不克不及修改效劳器中的php.ini文件。第3中办法我们就不成以使用 Cookie 设定失效时间,但是登录状况没有转变。 第4种也是最为重要的一种,在开发公司级网站时,假如碰到
session文件 使效劳器速度变慢,就可以使用。这里我们介绍一下第3种办法使用 GET 办法传输,其示例代码如下所示,接收页面头部的代码:
<?php $session_name = session_name(); //取得 session 名称 $session_id = $_GET[$session_name]; // 取得 session_id GET方式 session_id($session_id); // 关键步骤 session_start(); $_SESSION['admin'] = 'soft'; ?>
说明: Session 为恳求该页面之后会发生一个 session_id ,假如这时制止了 Cookie 就没法传递 session_id,在恳求下一个页面是将会从新发生一个 session_id ,这样就造成了 session 在页面间传递失效。
引荐教程:《PHP教程》
以上就是php中session时间设定浅析的具体内容,更多请关注百分百源码网其它相关文章!