Session

来源:互联网 发布:123d design mac 下载 编辑:程序博客网 时间:2024/04/28 04:46

计应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
原创粉丝点击