php session 封装类,php session封装类

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

1、session是什么意思:

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

bd3f7430bd0a6355acde9d166c1a0fc7.png

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类的全部内容了,希望对大家有所帮助,了解更多相关文章请关注吾爱编程网!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的原生PHP验证码的示例: ```php class Captcha { // 验证码字符长度 protected $length = 4; // 验证码宽度 protected $width = 100; // 验证码高度 protected $height = 40; // 验证码字符集 protected $charset = '0123456789'; // 验证码图片 protected $image; // 构造函数 public function __construct() { $this->create(); } // 生成验证码 public function create() { $this->image = imagecreatetruecolor($this->width, $this->height); $bgColor = imagecolorallocate($this->image, 255, 255, 255); imagefill($this->image, 0, 0, $bgColor); $code = $this->generateCode(); $textColor = imagecolorallocate($this->image, 0, 0, 0); $font = __DIR__ . '/arial.ttf'; for ($i = 0; $i < $this->length; $i++) { $x = ($this->width - 20) / $this->length * $i + 10; $y = $this->height / 2 + 10; imagettftext($this->image, 20, rand(-10, 10), $x, $y, $textColor, $font, $code[$i]); } header('Content-Type: image/png'); imagepng($this->image); } // 验证码校验 public function check($code) { if (strtolower($code) == strtolower($_SESSION['captcha'])) { return true; } else { return false; } } // 生成随机字符 protected function generateCode() { $code = ''; $charsetLength = strlen($this->charset); for ($i = 0; $i < $this->length; $i++) { $code .= $this->charset[rand(0, $charsetLength - 1)]; } $_SESSION['captcha'] = $code; return $code; } // 析构函数 public function __destruct() { imagedestroy($this->image); } } ``` 使用示例: ```php $captcha = new Captcha(); ``` 这将生成一个验证码图像并将其输出到浏览器。要检查用户输入的验证码是否正确,可以调用`check()`方法: ```php if ($captcha->check($_POST['captcha'])) { // 验证码正确 } else { // 验证码错误 } ``` 请注意,此示例仅用于演示目的。在实际应用程序中,您可能需要添加其他功能(例如:检查用户是否已经提交了表单,以防止滥用)并进行更多的安全检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值