PHP-COOKIE和会话:修订间差异

来自站长百科
跳转至: 导航、​ 搜索
无编辑摘要
第16行: 第16行:
到期时间(expireation)参数用于设置cookie存在的精确限定的时间长度,从新纪元(1970年1月1日)起所经过的秒数表示。如果没有设置它,cookie将持续起作用,直到用户关闭了浏览器,通常情况下,通过在当前时刻上增加特定的分钟数或小时数来确定到期时间,可以使用time()函数获取当前时间,下面一行代码将把cookie的到期时间设置为当前时间后1小时:setcookie('name','value',time()+3600.'/admin/');<br>
到期时间(expireation)参数用于设置cookie存在的精确限定的时间长度,从新纪元(1970年1月1日)起所经过的秒数表示。如果没有设置它,cookie将持续起作用,直到用户关闭了浏览器,通常情况下,通过在当前时刻上增加特定的分钟数或小时数来确定到期时间,可以使用time()函数获取当前时间,下面一行代码将把cookie的到期时间设置为当前时间后1小时:setcookie('name','value',time()+3600.'/admin/');<br>
最后,安全值规定只应该通过安全的HTTPS连接来发送cookie,1表示必须使用安全的链接,0表示标准连接也不错.<br>
最后,安全值规定只应该通过安全的HTTPS连接来发送cookie,1表示必须使用安全的链接,0表示标准连接也不错.<br>
setcookie('name','value',time()+3600,'/admin/','',1);<br>
setcookie('name','value',time()+3600,'/admin/',' ',1);<br>
与带有参数的所有函数一样,必须俺顺序传递setcookie()值,要跳过任何参数,可以使用NULL或空字符串,到期时间和安全这两个值都是整数,因此,不能使用引号括住它们。
与带有参数的所有函数一样,必须俺顺序传递setcookie()值,要跳过任何参数,可以使用NULL或空字符串,到期时间和安全这两个值都是整数,因此,不能使用引号括住它们。
===删除CooKie===
===删除CooKie===
如何删除一个cookie,虽然,关闭用户的浏览器时或者在到达日期/时间时cookie会自动到期,但是,有时你希望手动删除cookie,例如,在具体注册用户和登录能力的WEB站点内,可能希望在用户注销时删除任何cookie。<BR>
如何删除一个cookie,虽然,关闭用户的浏览器时或者在到达日期/时间时cookie会自动到期,但是,有时你希望手动删除cookie,例如,在具体注册用户和登录能力的WEB站点内,可能希望在用户注销时删除任何cookie。<BR>

2008年12月23日 (二) 16:34的版本

使用CooKie

设置CooKie

cookie是服务器在用户的机器上存储信息的一种方式。利用这种方式,站点可以在访问期间记住或跟踪用户。一些人对cookie心存疑虑,因为它们认为cookie允许服务器知道太多的事情。不过,cookie只能用于存储提供給服务器的信息,因此,与大多数其它在线技术相比,cookie的安全性并不差。
关于cookie要理解的最重要的事情是,必须在任何其它信息之前把它们从服务器发送给客户,万一服务器试图在WEB浏览器已经接收到HTML之后发送cookie,就会导致一条错误信息,并且不会发送cookie。
通过setcookie函数发送cookie:
setcookie(name,value);
例:sertcookie('first_name','Larry');//把cookie发送到浏览器时,带有名字first_name和值Larry.
与在PHP中使用任何变量时一样,在给cookie命名时,不要使用空白或标点符合,但是,要特别注意使用正确的大小写字母。

访问CooKie

设置好cookie后,要从cookie中检索一个值,只需要把合适的cookie名称用作键来引用$_COOKIE超全局数组,例如,从如下代码建立的cookie中检索一个值:
setcookie('username','Trout');
将使用$_COOKIE['username']获得这个值。

设置CooKie参数

尽管只把名称和值传递给setcookie()函数就足够了,还应该知道其它可用的参数,该函数还可以带有最多另外4个参数,其中每一个都会改变cookie的定义。
setcookie('name','value',expiration,'path','domain',secure);
到期时间(expireation)参数用于设置cookie存在的精确限定的时间长度,从新纪元(1970年1月1日)起所经过的秒数表示。如果没有设置它,cookie将持续起作用,直到用户关闭了浏览器,通常情况下,通过在当前时刻上增加特定的分钟数或小时数来确定到期时间,可以使用time()函数获取当前时间,下面一行代码将把cookie的到期时间设置为当前时间后1小时:setcookie('name','value',time()+3600.'/admin/');
最后,安全值规定只应该通过安全的HTTPS连接来发送cookie,1表示必须使用安全的链接,0表示标准连接也不错.
setcookie('name','value',time()+3600,'/admin/',' ',1);
与带有参数的所有函数一样,必须俺顺序传递setcookie()值,要跳过任何参数,可以使用NULL或空字符串,到期时间和安全这两个值都是整数,因此,不能使用引号括住它们。

删除CooKie

如何删除一个cookie,虽然,关闭用户的浏览器时或者在到达日期/时间时cookie会自动到期,但是,有时你希望手动删除cookie,例如,在具体注册用户和登录能力的WEB站点内,可能希望在用户注销时删除任何cookie。
尽管setcookie()函数可以带6个参数,实际上只有一个参数是必须的,如果发送一个包含名称但没有值的cookie,其效果就相当于删除现在的同名cookie,例如,要创建first_name的cookie,使用如下代码:
setcookie('first_name','Larry');
要删除first_name的cookie,可以编写如下代码:
setcookie('first_name');
一种附加的预防措施是,你还可以把到期日期设置成过去的某个日期:
setcookie('first_name',,time()-300);

使用会话

设置会话变量

访问会话变量

删除会话变量

更改会话行为

会话和CooKie

更改会话CooKie

使用不带CooKie的会话