session对于开发的小伙伴并不陌生,也是经常使用到的,在使用的过程中可能有一些问题比如session不过期以及传递方式等,为了方便使用吾爱编程为大家分享一下session封装类,使用的时候直接调用即可,有需要的小伙伴可以参考一下:
1、session是什么意思:
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。
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类的全部内容了,希望对大家有所帮助,了解更多相关文章请关注吾爱编程网!