Session

计应134(实验班) 王锐

1、什么是Session?

     在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特点的时间概念。

2、Session设置时间

    在大多数论坛中都可在登录时对失效时间进行选择,如保存一个星期、保存一个月等。这时就可以通过Cookie设置登录的失效时间。Session失效时间设置主要有以下两种方法。

(1)客户端没有禁止Cookie

  使用session_set_cookie_params()设置Session的失效时间,此函数是Session结合Cookie设置失效时间。如要让Session咋1分钟后失效,实例代码如下:

例1:

<?php
$time = 1 * 60;         // 设置session失效时间
session_set_cookie_params($time);    // 使用函数
session_start();        // 初始化session
$_SESSION[username] = 'mr';

?>

注意

session_set_cookie_params()必须在session_start()之前调用。

说明:

不推荐使用此函数,此函数在一些浏览器上会出现问题。所以一般手动设置失效时间。

 

  使用setcookie()函数可对Session设置失效时间,如让Session在一分钟后失效,实例代码如下:

例2:

<?php
session_start();
$time = 1 * 60;               // 给出session失效时间
setcookie(session_name(),session_id(),time()+$time,"/");    // 使用setcookie手动设置session失效时间
$_SESSION['user'] = "mr";

?>

(2)客户端禁止Cookie

       当客户端禁用Cookie时,Session页面间传递会失效,可以将客户端禁止Cookie想象成一家大型连锁超市,如果在其中一家超市办了会员卡,但是超市之间并没有联网,那么会员卡就只能在那家超市使用。解决这个问题有4个办法:

<1>在登录之前提醒用户必须打开Cookie,这是很多论坛的做法。

<2>设置php.ini文件中的session.use_trans_sid=1,或者编译时打开-enable-trans-sid选项,让PHP自动跨页面传递session_id。

<3>通过GET方法,隐藏表单传递session_id。

<4>使用文件或者数据库存储session_id,在页面间传递中手动调用。

      第三种使用GET方法传输,实例代码如下:

例3:

<?php
$sess_name = session_name();     //取得Session名称

$sess_id = $_GET[$sess_name];  //取得session_id GET方式
session_id($sess_id);
session_save_path($path);
session_start();

$_SESSION['admin'] = 'mrsoft';
?>

3、Session数据库存储

  用Session数据库存储,也就是PHP中的session_set_save_handler()函数

  语法格式如下:

  bool session_set_save_handler(string opeb,string close,string write,string destroy,string gc)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值