前端PHP入门-034-Session技术-掌握级别
而Session是通过将数据保存在服务器端来实现保持连接的。我们通过一个例子来了解session的机制。
我们去饮料店买饮料,下单以后服务员会给我们一个号码牌,然后你走到一旁,服务员并不认识你是谁,如果你想拿到你的饮料,你必须提供你的号码牌给服务员才可以,服务员通过号码牌来查记录,来确认你是顾客,确认你点了什么饮料,然后才会把你点的饮料给你。
了解了session原理,再回到Web技术中,我们有2种方法让客户端拿到“号码牌”,一种是通过cookie,一种是通过把值嵌入网页传给客户端。我们也有2种方法来让客户端把号码牌传给服务器来拿属于自己的资料,一种是cookie,一种是标准的Query String/POST。
PHP中使用session
了解了session的原理后,我们来学习如何在PHP中使用session。
1.开启session
首先我们要开启session,那么第一个要学习的函数就是
bool session_start()了,这个函数没有参数。在php文件的开始使用
session_start();
就可以启用新会话或者重用现有会话了。
2.添加session数据
开启会话之后,那么在接下来的处理中,我们就可以使用SESSION变量来存取信息了。我们要知道的是" role="presentation" style="position: relative;">SESSION变量来存取信息了。我们要知道的是SESSION变量来存取信息了。我们要知道的是_SESSION变量是个数组。当我们要把信息存入session的时候应该这么写:
$_SESSION['userName'] = 'wang';
3.读取session数据
读取很简单,就像我们使用数组一样,如下:
$userName = $_SESSION['userName'];
当然也可以 $_SESSION['userName'] 来用。和数组一样的使用。
**4.销毁session数据******
我们可以使用很多种方式来销毁session数据。
a) unset函数
我们通过使用类似
unset($_SESSION['XXX']);
来销毁session中的 XXX 变量。PS:请不要!请不要!请不要unset(SESSION),会导致后续无法使用" role="presentation" style="position: relative;">SESSION),会导致后续无法使用SESSION),会导致后续无法使用_SESSION这个变量!!!
b) 空数组赋值给session变量
$_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技术-掌握级别的更多相关文章
- 前端PHP入门-028-文件操作-掌握级别
作为刚入门我们员经常会干的意见事情是ctrl+c和ctrl+v,鼠标右键删除文件.会control+c(或右键)复制.粘贴文件以及新建文件,还可以设置文件的是否为只读文件等等 可不可以写入修改配置文件 ...
- 前端PHP入门-032-异常处理-应用级别
禁止显示错误 在php.ini配置文件中.我们可以控制php的错误显示状态. php.ini中有一个专门的配置项: display_errors 这个选项设置是否将错误信息输出到网页,或者对用户隐藏而 ...
- 前端PHP入门-029-文件操作-掌握级别
人生只有三天,活在昨天的人迷惑:活在明天的人等待:活在今天的人最踏实.你永远无法预测意外和明天哪个来得更早,所以,我们能做的,就是尽最大的努力过好今天.请记住:今天永远是昨天死去的人所期待的明天. f ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- Web前端小白入门指迷
前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...
- Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集
http://web.jobbole.com/89188/ 2016 – 对于未来五年内Web发展的7个预测 2015 – 我的前端之路:从命令式到响应式,以及组件化与工程化的变革 怎么成为一名优秀的 ...
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- 使用 gulp 搭建前端环境入门篇(转载)
本文转载自: 使用 gulp 搭建前端环境入门篇
- Session技术详解
1.session简介 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程 ...
- 前端学PHP之Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
随机推荐
- mysql innodb myisam 比较
InnoDB: 支持事务处理等 不加锁读取 支持外键 支持行锁 不支持FULLTEXT类型的索引 不保存表的具体行数,扫描表来计算有多少行 DELETE 表时,是一行一行的删除 InnoDB 把数据和 ...
- ES6的新特性(22)——Reflect
Reflect 概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API.Reflect对象的设计目的有这样几个. (1) 将Object对象的一些明显属于语言内部的 ...
- nginx原声方法按照每天日志切割保存
首先配置日志变量,然后配置日志 在/etc/nginx/conf.d/default.conf 配置变量 server{ if ($time_iso8601 ~ "^(\d{4})-(\d{ ...
- GCD最大公约数
说明: 最初跟鹏哥学习最大公约数的算法是辗转相除,确实印象很深刻,那种辗转赋值的思想在好多题目中都有运用,但随着进一步学习,我也参考了其他几种方便快捷的最大公约数求法,在这里做一个总结. . int ...
- 1019psp
1.本周psp: 2.本周进度条: 3.累计进度图(折线图): 4.psp饼状图:
- 求1到N(正整数)之间1出现的个数
一.题目要求 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 要求: 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12) = 5 ...
- 搜索引擎Elasticsearch REST API学习
Elasticsearch为开发者提供了一套基于Http协议的Restful接口,只需要构造rest请求并解析请求返回的json即可实现访问Elasticsearch服务器.Elasticsearch ...
- ant 安装及基础教程 !
这篇文章主要介绍了ant使用指南详细入门教程,本文详细的讲解了安装.验证安装.使用方法.使用实例.ant命令等内容,需要的朋友可以参考下 一.概述 ant 是一个将软件编译.测试.部署等步骤联系在 ...
- (九) 使用Jmeter 做分布式压测 ;
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分 ...
- urllib2 request 模拟伪装浏览器
直接上代码吧 # -*- coding:utf-8 -*- import urllib2 import random url = "http://www.baidu.com/" # ...