您的位置:

php之cookies小练习,php中cookie的使用

本文目录一览:

PHP中如何使用Cookie

比如设置一个名为 MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$ myCookie,这个变量的值就是Cookie的值。数组同样适用。另外一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组。 分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效) echo $MyCookie; echo $CookieArray[0]; echo $_COOKIE["MyCookie"]; echo $HTTP_COOKIE_VARS["MyCookie"]; 要删除一个已经存在的Cookie,有两个办法: 1、SetCookie(“Cookie”, “”); 2、SetCookie(“Cookie”, “value” , time()-1 / time() ); 使用Cookie的限制 1、必须在HTML文件的内容输出之前设置; 2、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。 3、限制是在客户端的。

如何使用PHP操作cookie

1.创建/更新cookie

.代码如下:

setCookie($cookieName,$value,time()+秒数);

例子:创建一个cookie,名字为UserName,值为zs,过期时间为2个星期

.代码如下:

setcookie("UserName","zs",time()+2*7*24*3600);

如果不设置时间,就不会保存到cookie文件中。浏览器不关时,能够访问。当浏览器关闭时,就无法访问了。

例子:

.代码如下:

setcookie("Age","18");

2.取cookie的值

.代码如下:

$_cookie[$cookieName];

例子:取出UserName的值,放在变量$uName中

.代码如下:

$uName=$_COOKIE['UserName'];

取值的时候,一般会先判断是否为空,再进行取值操作。上面的取值操作一般这样写:

.代码如下:

if (!empty($_COOKIE['UserName']))

{

$uName=$_COOKIE['UserName'];

}

3.删除指定cookie

.代码如下:

setcookie($cookieName,value,time()-秒数);

//或者

setcookie($cookiename, '');

//或者

setcookie($cookiename, NULL);

例子:删除UserName

.代码如下:

setcookie("UserName","zs",time()-3600);

4.删除当前会话的所有cookie

.代码如下:

foreach($_COOKIE as $key=$val){

setcookie($key,"",time()-100);

}

当无cookie时,本机保存cookie的文件也将删除。

PHP中cookie和session的区别实例分析

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID

为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一

SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。

可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。

大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现

网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同

的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出

cookie,我们叫做session

cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session

cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但

是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到

sessionid=KWJHUG6JJM65HS2K6之类的字符串。

明白了原理,我们就可以很容易的分辨出persistent cookies和session

cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session

cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent

cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如session

cookie安全了。

通常session

cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistent

cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session

cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。

在一些web开发的书中,往往只是简单的把Session和cookie作为两种并列的http传送信息的方式,session

cookies位于服务器端,persistent

cookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和区别,我们就不难选择合适的技术来开发web

service了。

实例附上出处链接: