PHP中Cookie存在的作用和用法

1、使用$_COOKIE读取Cookie
        使用Session只能让网站记住当前正在访问的用户,但有时网站还需要记住曾经访问过的用户,以便在用户下次访问时.提供个性化的服务。这就需要用到Cookie技术。Cookie能为网站和用户带来很多好处.如它可以记录特定用户访问网站的次数、最后一次访问时间、用户在网站内的浏览路径,以及使登录成功的用户下次自动登录等。
        也有一些Cookie的高级应用.如在购物网站浏览商品页面时,该网站程序可以将用户的浏览历史记录到Cookie中,当用户下次再访问时,网站根据用户过去的浏览情况为用户推荐感兴趣的内容。
        Cookie实际上是一个很小的文本文件.网站通过向用户硬盘中写入一个Cookie文件来标识用户。当用户下次再访问该网站时,浏览器会将Cookie信息发送给网站服务器,服务器通过读取以前写入的Cookie文件中的信息,就能识别该用户。
        Cookie有两种形式:会话Cookie和永久Cookie。前者是临时性的,只在浏览器打开时存在(存储在用户机器的内存中),主要用来实现Session技术;后者则永久地存放在用户的硬盘上并在有效期内一直可用。Cookie文件默认保存在“C:\Documents and Settings\登录用户名\Cookies”文件夹中。
        在PHP中,利用setcookie()函数可以创建和修改Cookie,以及设置Cookie的有效期;而使用$_COOKIE[]数组可以读取Cookie变量的值。

        1.创建和修改Cookie
        创建Cookie最简单的方法是使用setcookie( )函数。语法如下:
        setcookie(name, value, expire, path, domain, secure)
        其中,name用来定义一个cookie的变量名,value用来设置cookie变量值,expire用来定义cookie的有效期,而path、domain、 secure分别用来规定cookie的有效目录、有效域名和是否采用http、来传输cookie.这3个参数不常用。除了name和value是必需的参数外.其他参数都是可选的。
        例如设置了4个Cookie变量,变量名分别为“tmpcookie"、“userName"、“age"和“sex"。其中“tmpcookie”没有设置过期时间,因此它仅仅是个会话Cookie,会话Cookie并没有保存到文本文件中,关闭浏览器后,tmpcookie将立即失效。而其他3个Cookie均设置了过期时间,因此是永久Cookie.它们将在关闭浏览器一分钟后失效。
        永久Cookie变量均保存在了Cookie文件中,而会话Cookie没有保存。Cookie变量名和变量值中如果含有中文或特殊字符,会自动经urlencode函数处理转换成GB2312编码形式。
        如果要修改Cookie变量的值,可以用setcookie函数给变量重新赋值。
        但修改Cookie时设置过期时间的参数不能省略.否则该Cookie会被修改成临时Cookie。

        提示:
        ①在使用setcookie函数前,不要有任何HTML内容输出到浏览器,因为Cookie也是作为HTTP协议头的一部分。否则setcookie()创建Cookie将失败。
        ②cookie变量的值总是字符串数据类型。
        ③在PHP中,还能使用header函数设置cookie。

        2.读取Cookie
        在客户端写入Cookie后,当用户再次向网站发送HTTP请求时,就会将Cookie信息放在HTTP请求头中一起发送给服务器,服务器会自动获取HTTP请求头中的Cookie信息,并将这些信息保存到$_COOKIE数组中。因此通过$_COOKIE可以读取所有从客户端传过来的Cookie信息。
        说明:由于Cookie存放在了硬盘中,因此即使重新启动计算机后,再打开浏览器访问.php也能读取到Cookie(只要Cookie没过期)。

        3.Cookie数组
        实际上,使用setcookie()函数还可以创建Cookie数组。
        创建Cookie数组时,对于数组元素的下标可以是整数或字符串,但下标两边不要用引号(如user[id]不能写成user ['id']),因为PHP会自动给setcoo kie中的数组下标加引号的。
        要读取Cookie数组,可使用循环语句遍历数组,也可单独输出数组元素。

        4.删除Cookie
        有时用户可能希望网站不再记住自己过去访问的信息,这时可以删除Cookie,删除Cookie有两种方法:一是将Cookie的变量值设置为空,并且不设置有效期(不设置有效期将删除Cookie文件中的Cookie变量);二是将Cookie的有效期设置为过去的某个时间。不管使用哪种方法,浏览器接收到这样的Cookie响应头信息后,将自动删除用户硬盘中的Cookie文件和内存中的Cookie信息。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值