php中如何设置session的时间-PHP问题

资源魔 37 0

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的工夫的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!