php session unset,PHP中session_unset()和session_destroy()的区别是什么

在PHP中有两个非常相似的函数session_unset()和session_destroy(),它们两者都是用于删除注册到会话的所有变量,那么它们之间有什么差异?下面本篇文章就来给大家介绍一下session_unset()和session_destroy()的区别,希望对大家有所帮助。【视频教程推荐:PHP教程】

faa8a6dc0706eee0d87854c5b60752ab.png

session_unset()函数

session_unset()函数只删除会话中的变量,会话仍然存在;它仅会截断数据。

基本语法:session_unset( void )

session_destroy()函数

session_destroy()函数会销毁与当前会话关联的所有数据;但它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。

基本语法:session_destroy( void )相关专题推荐:php session (包含图文、视频、案例)

session_unset()和session_destroy()的区别

下面通过代码示例来看看session_unset()和session_destroy()的区别

首先使用session.php文件保存会话<?php

header("content-type:text/html;charset=utf-8");

// 启动会话

session_start();

//显示会话ID

echo session_id();

// 检查会话名称是否存在

if( isset($_SESSION['name']) ) {

echo '
' . '会话还有效.';

}

else {

echo '
' . '会话已销毁';

}

$_SESSION['name'] = 'PHP中文网!';

$_SESSION['website'] = 'www.php.cn' ;

?>

输出:

3f5ca739bb869342c55f9b5b0f7c3b69.png

示例1:使用session_unset()函数

在使用session_unset()函数之前,先会显示name和website。<?php

header("content-type:text/html;charset=utf-8");

// 启动会话

session_start();

// 检查会话名称是否存在

if( isset($_SESSION['name']) ) {

echo '
' . '会话还有效'.'
';

}

else {

echo '
' . '会话已销毁';

}

echo $_SESSION['name'].'
';

echo $_SESSION['website'].'
';

?>

输出:

ebc8858bd321498dfc48dc8998e70875.png

使用session_unset()函数后,它破坏了正在使用的'name'和'website'之类的变量。<?php

header("content-type:text/html;charset=utf-8");

// 启动会话

session_start();

// 检查会话名称是否存在

if( isset($_SESSION['name']) ) {

echo '
' . '会话还有效'.'
';

}

else {

echo '
' . '会话已销毁';

}

echo $_SESSION['name'].'
';

echo $_SESSION['website'].'
';

// 使用session_unset()函数

session_unset();

?>

输出:

1ad5db1a0402a31d82dfde0ed138de56.png

示例2:使用session_destroy()函数

session_destroy()函数会破坏整个会话而不是破坏变量。调用session_start()时,PHP会在浏览器中设置会话cookie。我们还需要删除cookie以完全破坏会话。<?php

header("content-type:text/html;charset=utf-8");

// 启动会话

session_start();

// 检查会话名称是否存在

if( isset($_SESSION['name']) ) {

echo '
' . '会话还有效'.'
';

}

else {

echo '
' . '会话已销毁';

}

echo $_SESSION['name'].'
';

echo $_SESSION['website'].'
';

$_SESSION = array();

// 如果想要终止会话,需要删除会话cookie。

// 注意:这将破坏会话,而不仅仅是会话数据!

if (ini_get("session.use_cookies")) {

$params = session_get_cookie_params();

setcookie(session_name(), '', time() - 42000,

$params["path"], $params["domain"],

$params["secure"], $params["httponly"]

);

}

// 最后,销毁会话。

session_destroy();

?>

输出:

2de85fb8add2a81961beab83d7918497.png

说明:执行echo session_id();语句时,可以看到有一个不同的会话ID,这意味着上一个会话已被销毁,所有变量和cookie也已销毁。因为所有变量都被破坏了,所以当检测会话是否存在时会转到else条件输出'会话已销毁'。

205585779f1f35d734ddd449935beb56.png

注:如果希望终止会话,也请删除会话cookie。这将破坏会话,而不仅仅是会话数据。

插门胡的小背心
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
phpsession_unsetsession_destroy区别分析
10-28
session_unset()和session_destroy()是处理会话时两个容易混淆但又非常重要的函数。下面将详细介绍这两个函数的区别以及它们的使用场景。 首先,session unset()函数主要用于释放指定的会话变量,使得这些...
基于session_unsetsession_destroy区别详解
10-27
为深入理解这两个函数之间的区别,我们需要首先了解PHP会话(session)的概念以及它们的工作机制。 首先,PHP的会话机制允许我们存储与特定用户关联的数据,这样当用户在网站上从一个页面跳转到另一个页面时,...
session_unset()和session_destroy()的区别
larance的挨踢生活
06-14 453
释放当前在内存创建的$_SESSION变量,但不删除session文件以及不释放对应的session_id。不删除当前的会话id,意味着当前会话连接还保持着,意思就是在不关闭浏览器的情况下再创建别的session后继续使用该session_id来保持会话。测试 在浏览器访问该方法 可以看到当前会话id为ad4016bf675ab4736712d4bb0d8c2778 浏览器继续访问该方法 我们发现session变量yy已经被删除,符合上面说的:释放当前在内存已经创建的所有$_
php unset session,PHPsession_unset()和session_destroy()用法分析
weixin_30332669的博客
03-13 403
关于session_unset()和session_destroy()的函数使用进行介绍。session_unset()释放当前在内存已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionidsession_destroy()删除当前用户对应的session文件以及释放sessionid,内存的$_SESSION变量内容依然保留if(session_d...
php session销毁方法,PHP session变量的销毁
weixin_33855603的博客
03-17 335
1.何为session?相当于一个客户端(可以是浏览器、app、ftp等其他,而且同一个浏览器多开几个又算是不同的客户端)对服务器的一个访问,这个期间服务器为此建立一个唯一的标示(session_id session_name),session其实也就是一个数组Array(),Session的开始和结束并不以业务上的输入用户名密码开始,也不以关闭浏览器和网页刷新而session结束2.sessio...
unset() session_unset() session_destroy()
ykm0722的专栏
12-02 1487
<br />session是存在服务器端的东西(通常是文件),当你在页面顶端使用session_start();的时候,系统就会把session从存的地方取出来,放到$_SESSION数组里。<br /><br />unset($_session) 只是把$_SESSION数组删除掉<br /><br />session_unregister是注销一个session变量;<br />session_destroy是注销所有的session变量,并且结束session会话;<br />session_unse
php session unset,php使用unset()函数删除/释放session变量
weixin_29214199的博客
03-09 702
使用unset()函数删除单个session变量源码如下:session_start();$_SESSION['username'] = "Joe";echo "Your username is: ".$_SESSION['username'].".";/* http://www.manongjc.com/article/1287.html *//* Delete the session vari...
php代码-session_destroy()的执行会销毁session_id()
07-15
总结来说,`session_destroy()` 是PHP用于处理用户会话生命周期的重要工具,它允许开发者安全地结束用户的会话状态,防止数据泄露。在实际应用,应正确使用 `session_destroy()`,并结合其他措施(如重定向或...
php session_decode函数用法讲解
10-16
首先,我们需要了解会话(Session)在PHP的作用。 PHP会话是解决Web应用用户状态保持问题的一种方法。由于HTTP协议无状态,每次请求都是独立的,无法识别同一个用户的不同请求。为了解决这个问题,PHP引入了...
php session详细设置说明 ,以及PHPsession_unsetsession_destroy区别
YoungerChen的专栏
10-23 658
[Session]session.save_handler       = files    ; 用于保存/取回数据的控制方式session.save_path          = C:/win/temp     ; 在 save_handler 设为文件时传给控制器的参数,                                     ; 这是数据文件将保存的路径。文件夹要事先建好session.use_cookies        = 1        ; 是否使用cookie
来看看session_unsetsession_destroy区别到底是啥
qq_36627117的博客
09-17 175
来探讨下php session_unsetsession_destroy区别吧 关于session_unset()和session_destroy()的函数使用进行介绍。 1、session_unset() 释放当前在内存已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id 2、session_destroy() 删除当前用户对应的session文件以及释放session id,内存的$_SESSION变量内容依然保留 因此,释放用户的se
session_unset() session_destroy()的区别
PHP教程网
07-15 1884
PHPsession_unregister是注销一个session变量;session_destroy是注销所有的session变量,并且结束session会话;session_unset()并不注销session变量,但把所有的session变量的值清空. 那么一般在做退出的操作时可以这样做:session_start(); session_unset();
PHP 里面session_unset()函数与session_destroy()函数比较
一蓑烟雨任平生
07-08 8593
**session_unset()**:释放当前在内存已经创建的所有$_SESSION变量,但是不删除session文件以及不释放对应的session id; **session_destroy()**:删除当前用户对应的session文件以及释放session id,内存$_SESSION变量内容依然保留;
【小白专用】php如何清除session(四种方法)
最新发布
zgscwxd的博客
12-23 1914
session_destroy
session_unset()与session_destroy()
苦艾文艺
12-27 469
session_unset():释放当前在内存已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id; session_destroy():删除当前用户对应的session文件以及释放session id,内存的$_SESSION变量内容依然保留; For example: session_start(); // echo "<br/>--
session_unsetsession_destroy的分别
大鹏
09-24 4127
session_unset() 释放当前在内存已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionid session_destroy() 删除当前用户对应的session文件以及释放sessionid,内存的$_SESSION
php三种清空session的方式,php删除、清空session的方式总结_php实例
weixin_42458217的博客
03-20 491
session删除清空是很讲究了如果我们定义好可以清除指定变量否则不小心会把所有session都清除掉了,下面我们来看一些总结。第一种方式:unset($_SESSION['xxx']) 删除单个sessionunset($_SESSION['xxx']) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。session_unregis...
session_unset()和session_destroy()用法分析
zhangge3663的博客
11-05 2549
关于session_unset()和session_destroy()的函数使用进行介绍。 session_unset() 释放当前在内存已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的sessionid session_destroy() 删除当前用户对应的session文件以及释放sessionid,内存的$_SESSION变量内容依然保留 if...
session_unset() 与 unset() 区别
YoungerChen的专栏
10-23 1023
原问题如下: $_SESSION['ab']="a"; session_unset($_SESSION['ab']); echo $_SESSION['ab']; ?> 为什么我session_unset后,仍然能打印出session['ab']的值 “a” 问题补充:间一句我换成 unset($_SESSION['ab']);却没有问题。。 我换成 session_unset();也是无效,依然可以打印出值‘a’
如果删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
05-29
是的,如果要删除某些 session 数据,可以使用 `unset()` 或 `session_destroy()` 函数。 在 PHP ,`$_SESSION` 变量用于存储 session 数据。要删除其的某个数据,可以使用 `unset()` 函数,将要删除的数据的键名作为参数传递给该函数。例如: ```php <?php session_start(); unset($_SESSION['username']); // 删除名为 'username' 的 session 数据 ?> ``` 以上代码,`unset()` 函数用于删除 `$_SESSION` 变量名为 `'username'` 的 session 数据。 如果要删除所有的 session 数据,可以使用 `session_destroy()` 函数。该函数会删除当前 session 的所有数据,并将 session ID 设置为一个新的值。例如: ```php <?php session_start(); session_destroy(); // 删除当前 session 的所有数据 ?> ``` 以上代码,`session_destroy()` 函数用于删除当前 session 的所有数据。 需要注意的是,`session_destroy()` 函数只会删除当前 session 的数据,而不会删除任何存储在服务器端的数据。如果要删除服务器端存储的 session 数据,需要使用其他方法,如删除 session 文件或清空 session 数据库表。 因此,题目的描述是正确的。
写文章

热门文章

  • 计算机蓝屏了 怎么维修,电脑蓝屏怎么办?电脑出现蓝屏快速解决教程 28068
  • android台湾 apk.tw,台湾SWAG app 24606
  • 游戏开发物语方案点数分配_最好的搭配 游戏开发物语攻略游戏方案怎么选 6783
  • ma5671怎么设置_电信/联通/移动,更换华为MA5671光猫详细教程 6716
  • maya对象属性_超详细!maya软件渲染属性设置说明(一) 3393

大家在看

  • 【C++高阶】深入理解C++ I/O流:标准库中的隐藏宝石
  • 40. 改变模型相对局部坐标原点位置
  • 如何在磁盘清理后恢复误删除的照片
  • 第2章网页制作的排版 577
  • C#在国外真的很流行吗?这份报告,告诉你答案。

最新文章

  • 一文讲清楚算法刷题-计算机专业新生必看
  • 复利计算Python
  • nginx虚拟服务器设置,Nginx虚拟主机配置教程
2024年2篇
2021年120篇
2020年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家赣州玻璃钢雕塑厂家抽象校园玻璃钢雕塑制造童话人物情侣抽象玻璃钢雕塑番禺玻璃钢卡通雕塑图片珠海透光玻璃钢雕塑生产厂家玻璃钢童话卡通雕塑精致的玻璃钢雕塑河北玻璃钢雕塑摆件供货商玻璃钢佛像雕塑哪家值得信赖玻璃钢卡通雕塑哪家便宜遂平玻璃钢雕塑设计山东商场创意商业美陈思路板芙商场美陈泡沫雕塑怎么改成玻璃钢佛像玻璃钢雕塑作品欣赏鹰潭多彩玻璃钢雕塑制作批量做玻璃钢雕塑加工厂包头玻璃钢雕塑生产厂家南通玻璃钢雕塑制作安装贺州玻璃钢花盆厂家金华玻璃钢陶瓷雕塑制作萧山玻璃钢雕塑广东佛像玻璃钢雕塑哪家便宜济南特色玻璃钢雕塑甘肃玻璃钢景观雕塑潍坊小品系列玻璃钢雕塑厂家上海装饰商场美陈价钱春熙路玻璃钢雕塑北京常用商场美陈厂家供应广东玻璃钢雕塑躺椅香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化