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相关推荐

  1. SpringBoot的高级教程

    SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...

  2. 东半球最好的SecureCRT高级教程

    东半球最好的SecureCRT的高级教程 搞Linux的用过SCRT的人有很多,但是我发现很少有人能把这个软件用到极致.^_^ 我们每天都会在SCRT上敲各种命令,有些命令很长.繁琐.重复,其实好好利 ...

  3. SpringBoot高级教程

    SpringBoot的高级教程 一.SpringBoot缓存 缓存的场景 临时性数据存储[校验码] 避免频繁因为相同的内容查询数据库[查询的信息] 1.JSR107缓存规范 用的比较少 Java Ca ...

  4. 计算机网络ppt课件教学视频教程,计算机网络高级教程ppt课件

    <计算机网络高级教程ppt课件>由会员分享,可在线阅读,更多相关<计算机网络高级教程ppt课件(89页珍藏版)>请在人人文库网上搜索. 1.The Application La ...

  5. ASP.NET MVC5 高级教程 学习笔记

    // 本应用是ASP.NET MVC5 高级教程学习产物 // 2015-07-23 // 第一章 入门 // 第二章 控制器 // 第三章 视图 1.Install-Package Wrox.Pro ...

  6. 千锋Java高级教程+分布式+springcloud+微信支付课程

    课程目录: ├─千锋Java高级教程-cas单点登录(完结-8集) │ 01单点登录介绍 │ 02cas介绍 │ 03tomcat搭建https │ 04cas server搭建 │ 05Cas 配置 ...

  7. SpringBoot高级教程(转)

    SpringBoot的高级教程 注:此文章转载于GitHub,但是原文章图片加载出错,因此我整理了一下,并非本人原创,在此感谢原作者! 附上原文视频课地址供大家学习: www.bilibili.com ...

  8. [转帖]tar高级教程:增量备份、定时备份、网络备份

    tar高级教程:增量备份.定时备份.网络备份 作者: lesca 分类: Tutorials, Ubuntu 发布时间: 2012-03-01 11:42 ė浏览 27,065 次 61条评论 一.概 ...

  9. ios cocopods 安装使用及高级教程

    CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm.随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的 ...

  10. MPLS *** 高级教程(张洋讲解演示版)

    MPLS *** 高级教程(张洋讲解演示版) 课程目标: ü        LDP的实施和特性 ü        PE-CE路由协议以的实施,以及它们在MPLS ***中的特性: ü        如 ...

最新文章

  1. 浅谈大数据中的 2PC、3PC、Paxos、Raft、ZAB
  2. Android移动开发之【Android实战项目】DAY2-使用Fragment实现底部菜单栏
  3. 【全球年青人召集令】Hello World,Hello 2050
  4. QNX6.5编译libcurl
  5. mysql数据库增左右连接_快速增加MYSQL数据库连接数负载能力
  6. Android Studio修改debug.keystore
  7. CoordinatorLayout使用全解析
  8. 大咖说中台 | 建设数据中台系列(五)——中台架构详解(下)
  9. php自动加载什么时候用到,php的自动加载的使用
  10. c#重点知识解答(五)
  11. 3分钟学会python_3分钟学会,学会用Python正确读取大文件
  12. 最小二乘法计算平面度
  13. python计算2019年新个税
  14. MySQL插入emoji表情错误的3种解决方案,Incorrect string value: '\xF0\x9F\x98\x84'
  15. 指令,机器指令,指令周期,机器周期的辨析
  16. 电脑上不了网,网络协商速率只有10M?
  17. android 代码 lut,如何将颜色LUT应用于位图图像以获取android中的滤镜效果?
  18. 微信小程序:好玩的表情包机器人
  19. 《诗水人间优秀博客》摘选目录
  20. .net core QuartzUI 执行定时任务

热门文章

  1. timeshift 安装使用说明
  2. HTML5:web socket 和 web worker
  3. Educational Codeforces Round 12 F. Four Divisors 求小于x的素数个数(待解决)
  4. ODBC操作excel
  5. Windows Service开发点滴20130622
  6. 运行后台程序出现[1]+ Exit
  7. 触发器中的 Inserted表和Deleted表
  8. 撩开云计算神秘面纱之阿里云弹性计算服务篇
  9. 我碰到的到现在为止,还没有找到比较好的解决方法的sps问题
  10. python_tornado