PHP会话技术cookie

为什么要使用会话技术

         我们在浏览网站的时候,访问每一个Web页面都是使用HTTP协议来实现的。由于HTTP协议是一个无状态的协议。这就会导致当一个用户请求一个页面以后,再请求该网站的其他页面,HTTP协议并不能告诉服务器这是同一个用户。

  因为HTTP协议是无状态的,所以我们无法跟踪用户。所以一定程度上会影响我们的开发,例如:登录模块,如果不能跟踪用户,将会导致访问该网站的每一个都要求我们重新登录。还有就是购物车也是需要使用到用户跟踪

  

用户跟踪的方式

         所谓用户跟踪,其实就是向另外一个网页传递数据。

         在PHP里面提供了3种方式来实现网页之间传递数据

①   可以通过超链接或者header()函数在URL后面附加参数的形式来传递数据。

② 使用cookie将用户的状态信息存储在客户端的计算机里面。

③ 使用session将用户的状态信息存储在服务器端的计算机里面。

 

如果用户的状态信息全部都是通过附加在URL后面来进行传递,那么,开发工作量是非常大。所以我们一般选用Cookie或者Session技术。

 

Cookie的应用

①      Cookie的概述

在现实生活中,如果在商场里面购买东西,一般会有一张会员卡。这张会员卡就记录用户的相关信息(姓名,联系电话,积分信息)。下一次你再去商场的时候,只要拿出会员卡,商场这一边就知道你是之前来过的用户,通过这张积分卡,就可以读出你所有的信息。

         Cookie就类似于这张会员卡,当用户第一次访问网站的时候,服务器在返回HTTP响应的时候顺带将Cookie(小饼干)发送到客户端保存起来(相当于商场将会员卡发给了你)。下一次当用户再次访问该网站的其他页面的时候,在HTTP的请求里面就会自动的将客户端的Cookie信息给带过去。通过这种方式,服务器端就可以识别是否是同一个用户。

 

①      向客户端的计算中设置Cookie

在PHP里面,提供了一个叫做setCookie的函数,可以用客户端发送cookie信息

Bool SetCookie(Cookie的名称,Cookie的值,Cookie的生存时间,Cookie有效的目录,Cookie有效的域名,是否通过安全协议HTTPS来传输Cookie)

 

Cookie的生存时间是以当前的时间戳来计算的

 

如果Cookie设置成功,则返回true

 

在PHP里面读取Cookie信息

在PHP里面提供了一个$_COOKIE[ ]这是一个超全局数组。该超全局数据用来存放从客户端发送过来的cookie信息。

通过test.Php设置了cookie信息

访问hello.php页面的时候,我们会发现http请求里面自动就添加了这个cookie信息

如果没有写过期时间,cookie的有效期是多久?

如果没有书写cookie的过期时间,那么默认cookie将会在浏览器关闭时过期。

 

 

 以数组的形式设置cookie

这个一般用于一组信息的时候

 

 删除cookie

如何手动的删除cookie,方法很简单,还是调用setCookie函数,只需要value为空,然后时间小于当前的系统时间即可

 

还有一种方法删除cookie,只设置第一个参数,其他参数全部省略

这一种方式cookie并没有被删除,只是被置空了。

 

posted @ 2017-08-21 00:04  电子E  阅读(88)  评论(0编辑  收藏  举报