【笔记】php-Cookie和Session

Cookie管理

了解Cookie

什么是Cookie

Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookies文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速做出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。

格式:用户名@网站地址[数字].txt

注意:
在Cookies文件夹下,每个Cookie文件都是一个简单而又普通的文本文件,而不是程序。Cookies中的内容大多都经过了加密处理,因此,表面看来只是一些字母和数字组合,而只有服务器的CGI处理程序才知道它们真正的含义。

Cookie的功能

Web服务器可以应用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookie常用于以下3个方面:

  • 记录访客的某些信息。如可以利用Cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息,另外,某些网站可以使用Cookie自动记录访客上次登录的用户名。
  • 在页面之间传递变量。浏览器并不会保存当前页面上的任何变量信息,当页面被关闭时页面上的所有变量信息将随之消失。如果用户声明一个变量id=8,要把这个变量传递到另一个页面,可以把变量id以Cookie形式保存下来,然后在下一页通过读取该Cookie来获取变量的值。
  • 将所查看的Internet页存储在Cookies临时文件夹中,可以提高以后浏览的速度。

注意:
一般不要用Cookie保存数据集或其他大量数据。并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端计算机中,因此最好不要保存敏感的、未加密的数据,否则会影响网络的安全性。

创建Cookie

在PHP中通过setcookie()函数创建Cookie。在创建Cookie之前必须了解的是,Cookie是HTTP头标的组成部分,而头标必须在页面其他内容之前发送,它必须最先输出。若在setcookie()函数前输出一个HTML标记或echo语句,甚至一个空行都会导致程序出错

语法格式:

bool setcookie(string name[, string value[, int expire[, string path[. string domain[, int secure]]]]])

在这里插入图片描述

读取Cookie

在PHP中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端的Cookie值
在这里插入图片描述
在上面的代码中,首先使用isset()函数检测Cookie文件是否存在,如果不存在,则使用setcookie()函数创建一个Cookie,并输出相应的字符串;如果Cookie文件存在,则使用setcookie()函数设置Cookie文件失效的时间,并输出用户上次访问网站的时间。最后在页面输出本次访问网站的当前时间。

删除cookie

当Cookie被创建后,如果没有设置它的失效时间,其Cookie文件会在关闭浏览器时被自动删除。如果要在关闭浏览器之前删除Cookie文件,方法有两种:一种是使用setcookie()函数删除,另一种是在浏览器中手动删除Cookie。

1. 使用setcookie()函数删除Cookie

删除Cookie和创建Cookie的方式基本类似,删除Cookie也使用setcookie()函数。删除Cookie只需要将setcookie()函数中的第二个参数设置为空值,将第三个参数Cookie的过期时间设置为小于系统的当前时间即可。

2. 在浏览器中手动删除Cookie

Session管理

了解Session

1.什么是Session

Session译为“会话”,其本义是指有始有终的一系列动作/消息,如打电话时从拿起电话拨号到挂断电话这一系列过程可以称为一个Session。

在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特定的时间概念。

2.Session工作原理

当启动一个Session会话时,会生成一个随机且唯一的session_id,也就是Session的文件名,此时session_id存储在服务器的内存中,当关闭页面时,此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的id。

3.Session的功能

Session在Web技术中非常重要。由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。通过Session则可记录用户的有关信息,以供用户再次以此身份对Web服务器提交要求时作确认。例如,在电子商务网站中,通过Session记录用户登录的信息,以及用户所购买的商品,如果没有Session,那么用户每进入一个页面都需要登录一次用户名和密码。

另外,Session会话适用于存储信息量比较少的情况。如果用户需要存储的信息量相对较少,并且对存储内容不需要长期存储,那么使用Session把信息存储到服务器端比较合适。

创建会话

创建一个会话需要通过以下步骤:启动会话→注册会话→使用会话→删除会话。

1.启动会话

启动PHP会话的方式有两种:一种是使用session_start()函数,另一种是使用session_register()函数,为会话登录一个变量来隐含地启动会话。

2.注册会话

会话变量被启动后,全部保存在数组 S E S S I O N 中 。 通 过 数 组 _SESSION中。通过数组 SESSION_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。
在这里插入图片描述

3.使用会话

首先需要判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问。如果已经存在,则将这个已注册的会话变量载入以供用户使用。
在这里插入图片描述

4.删除会话

  1. 删除单个会话
    删除会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。
  2. 删除多个会话
    如果想要一次注销所有的会话变量,可以将一个空的数组赋值给$_SESSION.
  3. 结束当前会话
    如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhShy23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值