一,PHP会话机制---cookie

时间:2023-06-12 13:42:56

1,  什么是会话

会话可简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

2,  cookie技术

cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样web资源处理的就是用户各自的数据了。

3,  服务器添加cookie

test1.php:

setCookie("name","shunping",time()+3600);

(1) 当浏览器访问test1.php页面的时候,服务器就会以Set-Cookie:"name=shunping; expires=Mon, 26-Sep-2016 08:56:31 GMT; Max-Age=3600"响应,当浏览器获得该cookie信息后,就保存到本地机器磁盘中。

(2) 如果没有第三个时间参数,Cookie信息不会保存到客户端,当浏览器会话结束,cookie失效。

(3) cookie是以key/value形式保存的,value为字符串样式。

(4) cookie可以保存中文,默认会对中文进行urlencode进行编码。

4,  服务器读取客户端cookie

test2.php:

echo $_COOKIE['name'];

$_COOKIE是超全局变量

5,  服务器更新cookie,实际重新添加cookie。

setCookie("name","shunping",time()+3600); //添加cookie

setCookie("name","liuhuamei",time()+3000); //修改cookie

6,  服务器删除cookie

(1)   删除某个指定cookie,删除cookie还使用setCookie,只不过第三个参数time()减某个值即可。

setCookie(key,"",time()-60);

(2)     删除所有cookie

foreach($_COOKIE  as $key=>$value){

    setCookie($key,"",time()-60);

}

(3)     如果所有的cookie都删除了,则客户端的浏览器会将cookie文件删除。

7,  Cookie总结

(1)   一个cookie只能标识一种字符串信息,它至少含有一个标识该信息的名称(name)和设置值(value)。

(2)   一个web站点可以给一个web浏览器发送多个cookie,一个web浏览器可以存储多个web站点提供的cookie。

(3)   如果创建了一个cookie,并将它发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用expire,并给出一个以秒为单位的时间。要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。