而Session是通过将数据保存在服务器端来实现保持连接的。我们通过一个例子来了解session的机制。

我们去饮料店买饮料,下单以后服务员会给我们一个号码牌,然后你走到一旁,服务员并不认识你是谁,如果你想拿到你的饮料,你必须提供你的号码牌给服务员才可以,服务员通过号码牌来查记录,来确认你是顾客,确认你点了什么饮料,然后才会把你点的饮料给你。

了解了session原理,再回到Web技术中,我们有2种方法让客户端拿到“号码牌”,一种是通过cookie,一种是通过把值嵌入网页传给客户端。我们也有2种方法来让客户端把号码牌传给服务器来拿属于自己的资料,一种是cookie,一种是标准的Query String/POST。

PHP中使用session

了解了session的原理后,我们来学习如何在PHP中使用session。

1.开启session

首先我们要开启session,那么第一个要学习的函数就是

bool session_start()了,这个函数没有参数。在php文件的开始使用

  1. session_start();

就可以启用新会话或者重用现有会话了。

2.添加session数据

开启会话之后,那么在接下来的处理中,我们就可以使用SESSION变量来存取信息了。我们要知道的是" role="presentation" style="position: relative;">SESSION变量来存取信息了。我们要知道的是SESSION变量来存取信息了。我们要知道的是_SESSION变量是个数组。当我们要把信息存入session的时候应该这么写:

  1. $_SESSION['userName'] = 'wang';

3.读取session数据

读取很简单,就像我们使用数组一样,如下:

  1. $userName = $_SESSION['userName'];

当然也可以 $_SESSION['userName'] 来用。和数组一样的使用。

**4.销毁session数据******

我们可以使用很多种方式来销毁session数据。

a) unset函数

我们通过使用类似

  1. unset($_SESSION['XXX']);

来销毁session中的 XXX 变量。PS:请不要!请不要!请不要unset(SESSION),会导致后续无法使用" role="presentation" style="position: relative;">SESSION),会导致后续无法使用SESSION),会导致后续无法使用_SESSION这个变量!!!

b) 空数组赋值给session变量

  1. $_SESSION = array();

之前我们说过SESSOIN变量是个数组,那么空数组赋值的话也是相当于将当前会话的" role="presentation" style="position: relative;">SESSOIN变量是个数组,那么空数组赋值的话也是相当于将当前会话的SESSOIN变量是个数组,那么空数组赋值的话也是相当于将当前会话的_SESSION变量中的值销毁。

c) session_destory() 函数

这个函数会销毁当前会话中的全部数据,并结束当前会话。但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。

5.通过session来检查用户是否登陆和一个简单的购物车例子

6.session的扩展:默认session存储在哪里。

在php.ini配置文件中有这么一行 session.save_handler = files,

files : 说明了php默认的是用文件读写的方式来保存session的。那么在哪个目录呢?继续看。session.save_path = "/tmp",

这一行前面有个 ; ,说明是被注释的,不过即便这样,php默认的

session 也是保存在这里的,/tmp目录。上图:

从图中我们可以看到确实在这个目录下面,我们顺便看看里面的内容

我的写入session的语句是:

SESSION[′as′]=′as′;解读一下,第一个as代表的是" role="presentation" style="position: relative;">SESSION[′as′]=′as′;解读一下,第一个as代表的是SESSION[′as′]=′as′;解读一下,第一个as代表的是_SESSION['as']中的as,|后面的s表示的是这是一个字符串类型的数据,2表示的是这个字符串所占的字节数,最后双引号引起来的是值as。

PS:还可以自己动手试试存数字的话,|后面显示什么字母。还有,你还可以试试如果你存中文的话,字节数是多少?自己试!别看了!我不会告诉你的!!!

前端PHP入门-034-Session技术-掌握级别的更多相关文章

  1. 前端PHP入门-028-文件操作-掌握级别

    作为刚入门我们员经常会干的意见事情是ctrl+c和ctrl+v,鼠标右键删除文件.会control+c(或右键)复制.粘贴文件以及新建文件,还可以设置文件的是否为只读文件等等 可不可以写入修改配置文件 ...

  2. 前端PHP入门-032-异常处理-应用级别

    禁止显示错误 在php.ini配置文件中.我们可以控制php的错误显示状态. php.ini中有一个专门的配置项: display_errors 这个选项设置是否将错误信息输出到网页,或者对用户隐藏而 ...

  3. 前端PHP入门-029-文件操作-掌握级别

    人生只有三天,活在昨天的人迷惑:活在明天的人等待:活在今天的人最踏实.你永远无法预测意外和明天哪个来得更早,所以,我们能做的,就是尽最大的努力过好今天.请记住:今天永远是昨天死去的人所期待的明天. f ...

  4. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

  5. Web前端小白入门指迷

    前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...

  6. Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集

    http://web.jobbole.com/89188/ 2016 – 对于未来五年内Web发展的7个预测 2015 – 我的前端之路:从命令式到响应式,以及组件化与工程化的变革 怎么成为一名优秀的 ...

  7. openresty 前端开发入门五之Mysql篇

    openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...

  8. 使用 gulp 搭建前端环境入门篇(转载)

    本文转载自: 使用 gulp 搭建前端环境入门篇

  9. Session技术详解

    1.session简介 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程 ...

  10. 前端学PHP之Session

    前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...

随机推荐

  1. Thunder团队第七周 - Scrum会议6

    Scrum会议6 小组名称:Thunder 项目名称:i阅app Scrum Master:苗威 工作照片: 宋雨在照相,所以不在相片中. 参会成员: 王航:http://www.cnblogs.co ...

  2. Ubuntu16.04安装oracle-java8-installer

    本篇博客参考 1. 安装默认JRE/JDK 更新 sudo apt-get update 检查是否安装了Java java -version 如果返回The program java can be f ...

  3. HDU 5191 Building Blocks

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5191 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  4. HDU 5229 ZCC loves strings 博弈

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5229 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  5. lintcode-488-快乐数

    488-快乐数 写一个算法来判断一个数是不是"快乐数". 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...

  6. CoordinatdBolt原理分析

    参考链接:http://xumingming.sinaapp.com/811/twitter-storm-code-analysis-coordinated-bolt/ CoordinatedBolt ...

  7. C语言文法阅读与理解

    <翻译单元>--><外部声明>--><函数定义>|<申报> <函数定义>--><声明说明符>-->< ...

  8. PAT 甲级 1063 Set Similarity

    https://pintia.cn/problem-sets/994805342720868352/problems/994805409175420928 Given two sets of inte ...

  9. node.js入门(一)

    NodeJS是一个使用了Google高性能V8引擎的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成为编写高吞吐 量网 ...

  10. (转)微软借力.NET开源跨平台支持,布局物联网平台开发

    今天科技类最大的新闻,莫过于微软宣布.NET开发框架开源计划..NET 开源,集成 Clang 和 LLVM 并且自带 Android 模拟器,这意味着 Visual Studio 这个当下最好没有之 ...