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的工夫的具体内容,更多请存眷资源魔其它相干文章!
抱歉,评论功能暂时关闭!