PHP高级教程-Session
PHP Session
PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。
PHP Session 变量
您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。
PHP session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。
开始 PHP Session
在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
注释:session_start() 函数必须位于 <html> 标签之前:
<?php session_start(); ?><html> <body></body> </html>
上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。
存储 Session 变量
存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:
<?php session_start(); // 存储 session 数据 $_SESSION['views']=1; ?><html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body><?php // 检索 session 数据 echo "浏览量:". $_SESSION['views']; ?></body> </html>
输出:
浏览量:1
在下面的实例中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则创建 "views" 变量,并把它设置为 1:
<?php session_start();if(isset($_SESSION['views'])) {$_SESSION['views']=$_SESSION['views']+1; } else {$_SESSION['views']=1; } echo "浏览量:". $_SESSION['views']; ?>
销毁 Session
如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
unset() 函数用于释放指定的 session 变量:
<?php session_start(); if(isset($_SESSION['views'])) {unset($_SESSION['views']); } ?>
您也可以通过调用 session_destroy() 函数彻底销毁 session:
<?php session_destroy(); ?>
注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。
PHP高级教程-Session相关推荐
- SpringBoot的高级教程
SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...
- 东半球最好的SecureCRT高级教程
东半球最好的SecureCRT的高级教程 搞Linux的用过SCRT的人有很多,但是我发现很少有人能把这个软件用到极致.^_^ 我们每天都会在SCRT上敲各种命令,有些命令很长.繁琐.重复,其实好好利 ...
- SpringBoot高级教程
SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...
- 计算机网络ppt课件教学视频教程,计算机网络高级教程ppt课件
<计算机网络高级教程ppt课件>由会员分享,可在线阅读,更多相关<计算机网络高级教程ppt课件(89页珍藏版)>请在人人文库网上搜索. 1.The Application La ...
- ASP.NET MVC5 高级教程 学习笔记
// 本应用是ASP.NET MVC5 高级教程学习产物 // 2015-07-23 // 第一章 入门 // 第二章 控制器 // 第三章 视图 1.Install-Package Wrox.Pro ...
- 千锋Java高级教程+分布式+springcloud+微信支付课程
课程目录: ├─千锋Java高级教程-cas单点登录(完结-8集) │ 01单点登录介绍 │ 02cas介绍 │ 03tomcat搭建https │ 04cas server搭建 │ 05Cas 配置 ...
- SpringBoot高级教程(转)
SpringBoot的高级教程 注:此文章转载于GitHub,但是原文章图片加载出错,因此我整理了一下,并非本人原创,在此感谢原作者! 附上原文视频课地址供大家学习: www.bilibili.com ...
- [转帖]tar高级教程:增量备份、定时备份、网络备份
tar高级教程:增量备份.定时备份.网络备份 作者: lesca 分类: Tutorials, Ubuntu 发布时间: 2012-03-01 11:42 ė浏览 27,065 次 61条评论 一.概 ...
- ios cocopods 安装使用及高级教程
CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的 ...
- MPLS *** 高级教程(张洋讲解演示版)
MPLS *** 高级教程(张洋讲解演示版) 课程目标: ü LDP的实施和特性 ü PE-CE路由协议以的实施,以及它们在MPLS ***中的特性: ü 如 ...
最新文章
- 浅谈大数据中的 2PC、3PC、Paxos、Raft、ZAB
- Android移动开发之【Android实战项目】DAY2-使用Fragment实现底部菜单栏
- 【全球年青人召集令】Hello World,Hello 2050
- QNX6.5编译libcurl
- mysql数据库增左右连接_快速增加MYSQL数据库连接数负载能力
- Android Studio修改debug.keystore
- CoordinatorLayout使用全解析
- 大咖说中台 | 建设数据中台系列(五)——中台架构详解(下)
- php自动加载什么时候用到,php的自动加载的使用
- c#重点知识解答(五)
- 3分钟学会python_3分钟学会,学会用Python正确读取大文件
- 最小二乘法计算平面度
- python计算2019年新个税
- MySQL插入emoji表情错误的3种解决方案,Incorrect string value: '\xF0\x9F\x98\x84'
- 指令,机器指令,指令周期,机器周期的辨析
- 电脑上不了网,网络协商速率只有10M?
- android 代码 lut,如何将颜色LUT应用于位图图像以获取android中的滤镜效果?
- 微信小程序:好玩的表情包机器人
- 《诗水人间优秀博客》摘选目录
- .net core QuartzUI 执行定时任务