使用$_COOKIE读取Cookie (PHP)

Cookie实际上是一个很小的文本文件,网站通过向用户硬盘中写入一个Cookie文件来标识用户。当用户下次再访问该网站时,浏览器会将Cookie信息发送给网站服务器,服务器通过读取以前写入的Cookie文件中的信息,就能识别该用户。

Cookie的两种形式:
(1)会话Cookie。临时性的,只在浏览器打开时存在,主要用来实现Session技术。
(2)永久Cookie。永久性的,保存在用户硬盘上并在有效期内一直可用。

创建和修改Cookie

在PHP中,利用setcookie()函数可以创建和修改Cookie,以及设置Cookie的有效期;而使用$_COOKIE[]数组可以读取Cookie变量的值。

setcookie(name,value[,exprie,path,domain,secure]);//创建Cookie

参数:
name:Cookie的变量名
value:Cookie的变量值
expire:Cookie的有效期
path:Cookie的服务器路径
domain:Cookie的有效域名
secure:是否采用HTTPS来传输Cookie

说明:
(1)除了name和value是必需参数外,其他参数都是可选的。
(2)没有设置有效期的Cookie为会话Cookie。
(3)修改永久Cookie时若没设置有效期,该Cookie将被修改为会话Cookie。
(4)在使用setcookie()函数前,不要有任何HTML内容输出到浏览器,否则setcookie()创建Cookie将失败。因为Cookie也是作为HTTP协议头的一部分。
(5)Cookie变量的值总时字符串数据类型。

使用header设置Cookie:
header('Set-Cookie:name=value;expires=".gmstrftime("%A,%d-%b-%Y %H:%M:%S GMT",time()+10)');

删除Cookie的方法:
(1)将Cookie的变量值设置为空,并且不设置有效期,不设置有效期将删除Cookie文件中的Cookie变量。
(2)将Cookie的有效期设置为过去的某个时刻。
无论哪种方法,浏览器收到这样的Cookie响应头信息后,将自动删除用户硬盘中的Cookie文件和内存中的Cookie信息。

使用setcookie()函数创建及删除Cookie数组

//test1.php
<?php
	setcookie("user[name]","admin",time()+600);
	setcookie("user[pw]","123456",time()+600);
	setcookie("user[city]","china",time()+600);
	echo '创建Cookie信息成功,<a href="test2.php">点击查看Cookie信息</a>';
?>

//test2.php
<?php
	echo "Cookie信息:<br/>";
	if(isset($_COOKIE['user'])){
		foreach($_COOKIE['user'] as $key=>$value){
			echo $key."=>".$value."<br/>";
		}
		echo '<a href="test3.php">删除Cookie信息</a>';
	}
	else{
		var_dump($_COOKIE);
	}
?>

//test3.php
<?php
	setcookie('user[name]',"");
	setcookie('user[pw]',"123456",time()-1);
	setcookie('user[city]',"china",time()-1);
	echo '已清空Cooike信息,<a href="test2.php">返回查看Cookie信息</a>';
?>

运行截图

发布了115 篇原创文章 · 获赞 19 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览