当前位置:首页 > PHP教程 >

php session封装类

发布时间:2021-01-08 11:15:06 作者:佚名 阅读:(14)

session对于开发的小伙伴并不陌生,也是经常使用到的,在使用的过程中可能有一些问题比如session不过期以及传递方式等,为了方便使用吾爱编程为大家分享一下session封装类,使用的时候直接调用即可,有需要的小伙伴可以参考一下:

1、session是什么意思:

    Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

php session封装类

2、session工作原理:

    (1)、当一个session第一次被启用时,一个独一的标识被存储于本地的cookie中。
    (2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。
    (3)当执行PHP脚本时,通过使用session_register()函数注册session变量。
    (4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。

3、session封装类:

<?php
/**
 * Session类
 * Date: 2021/01/08
 */
class Session {
    /**
     * 初始化
     */
    static function _init(){
        ini_set('session.auto_start', 0);
    }
    /**
     * 启动Session
     */
    static function start() {
        session_start();
    }
    /**
     * 设置Session
     *
     * @param $name Session名称
     * @param $value 值
     * @param $time 超时时间(秒)
     */
    public static function set($name,$value,$time){
        if(empty($time)){
            $time = 1800; //默认值
        }
        $_SESSION[$name] = $value;
        $_SESSION[$name.'_Expires'] = time() + $time;
    }
    /**
     * 获取Session值
     * @param $name Session名称
     */
    public static function get($name){
        //检查Session是否已过期
        if(isset($_SESSION[$name.'_Expires']) && $_SESSION[$name.'_E
 xpires']>time()){
            return $_SESSION[$name];
        }else{
            Session::clear($name);
            return null;
        }
    }
    /**
     * 设置Session Domain
     * @param $sessionDomain 域
     * @return string
     */
    static function setDomain($sessionDomain = null) {
        $return = ini_get('session.cookie_domain');
        if(!empty($sessionDomain)) {
            ini_set('session.cookie_domain', $sessionDomain);//跨域访问Session
         }
        return $return;
    }
    /**
     * 删除指定Session值
     * @param $name Session名称
     */
    static function clear($name){
        unset($_SESSION[$name]);
        unset($_SESSION[$name.'_Expires']);
    }
    /**
     * 重置销毁Session
     */
    static function destroy(){
        unset($_SESSION);
        session_destroy();
    }
    /**
     * 获取或设置Session id
     */
    static function sessionid($id=null){
        return session_id($id);
    }
}
?>

4、调用方法:

    (1)、设置session:

Session::set('WebName', '吾爱编程', 3600);

     (2)、读取session:

$WebName = Session::get('WebName');

     (3)、删除指定session:

Session::clear('WebName');


以上就是吾爱编程为大家介绍的封装session类的全部内容了,希望对大家有所帮助,了解更多相关文章请关注吾爱编程网!

欢迎分享转载→ php session封装类

© 2015-2021 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们