Cookie原理及使用
关联课件:7子项目七 - Cookie原理及使用(点击在线预览)
7.3.1.1 Cookie机制的原理及使用
Cookie是一种在本地浏览器端储存数据并以此来跟踪和识别用户的机制。PHP透明地支持HTTP Cookie。从客户端发送的cookie都会被PHP 5自动加入$_COOKIE的全局数组。如果希望对一个Cookie变量设置多个值,则需在cookie的名称后加“["值名称"]”符号。
下面来看一下Cookie的具体应用实例。
先来建立一个用户登录的表单。
1: <!--文件7-1.php:COOKIE实现用户登录的表单-->
2: <HTML>
3: <HEAD>
4: <TITLE>COOKIE实现用户登录的表单</TITLE>
5: </HEAD>
6: <BODY>
7: <form name="form1" method="post" action="7-1action.php">
8: <table width="280" height="96" border="0" cellpadding=
"0" cells: pacing="1" bgcolor="#999999">
9: <tr>
10: <td colspan="2" bgcolor="#FFFFFF">用户登录</td>
11: </tr>
12: <tr>
13: <td bgcolor="#FFFFFF">用户名:</td>
14: <td bgcolor="#FFFFFF">
15: <input type="text" name="user_name" size="12">
16: </td>
17: </tr>
18: <tr>
19: <td bgcolor="#FFFFFF">口令:</td>
20: <td bgcolor="#FFFFFF">
21: <input type=" password " name="user_pw" size="12"></td>
22: </tr>
23: <tr>
24: <td colspan="2" bgcolor="#FFFFFF">
25: <input type="submit" name="Submit" value="提交">
26: <input type="reset" name="Submit2" value="重置"></td>
27: </tr>
28: </table>
29: </form>
30: </BODY>
31: </HTML>
程序7-1.php的运行结果如图7-1所示。
图7-1 程序7-1.php的运行结果
再建立一个名为“7-1action.php”的文件,在“7-1.php”文件中的第7行已经规定图7-3所示的用户填写的表单的内容要提交到“7-1action.php”文件中。也就是要在这个文件中利用Cookie模拟用户的登录是否成功。“7-1action.php”文件的详细代码如下。
1: <?php
2: //文件7-1action.php:COOKIE实现用户登录
3: setcookie("user_name", $_POST[user_name]);
4: setcookie("user_pw", $_POST[user_pw]);
5: ?>
6: <HTML>
7: <HEAD>
8: <TITLE>COOKIE实现用户登录</TITLE>
9: </HEAD>
10: <BODY>
11: <?php
12: if ($_POST["user_name"]=="php" && $_POST["user_pw"]=="php5"){
13: echo "恭喜您,用户名和口令正确,登录成功!";
14: echo "<a href=7-1action-check.php>单击检测Cookie的值是否可以页
间传递</a>" ;
15: }else{
16: echo "您输入的用户名和口令不正确,请<a href=7-1.php>返回</a>
请尝试:php和php5";
17: }
18: echo "<br>您输入的用户名为:".$_COOKIE["user_name"];
19: echo "<br>口令为:".$_COOKIE["user_pw"];
20: ?>
21: </BODY>
22: </HTML>
“7-1action.php”程序中第8行和第9行是接受“7-1.php”程序中第15行和第21行表单传递的变量值,并注册为Cookie,此时“$_COOKIE["user_name"]”和“$_COOKIE ["user_pw"]”均为全局变量,只要是由程序“7-1action.php”声称的跳转过去的叶子这两个变量的值均可用。
在图7-1中输入用户名“php”和密码“php5”后单击“提交”按钮会出现如图7-2所示的运行效果。
输入的不正确的用户名和口令
输入正确的用户名和口令
但当输入其他用户名和密码后点“提交”按钮会出现图7-3所示的运行结果
图7-3 程序7-1action.php的运行结果
下面来检测一下在系统设为禁用的时,Cookie是否可以在不同的页间传递。建立一个名为“7-1action-check.php”的文件。在文件“7-1action.php”的第18行,我们需单击一个链接方可进行测试,而链接的目标文件为“7-1action.php-check.php”,文件“7-1action.php- check.php”的详细代码如下。
1: <!--文件7-1action-check.php:COOKIE页间传递-->
2: <HTML>
3: <HEAD>
4: <TITLE>COOKIE页间传递</TITLE>
5: </HEAD>
6: <BODY>
7: <?php
8: if ($_COOKIE["user_name"]!="" && $_COOKIE["user_pw"]!=""){
9: echo "Cookie页间传递成功!<br>";
10: echo "您输入的用户名为:".$_COOKIE["user_name"];
11: echo "<br>口令为:".$_COOKIE["user_pw"];
12: }else{
13: echo "Cookie页间传递失败,其值为空!<br>";
14: }
15: ?>
16: </BODY>
17: </HTML>
在IE的“工具”菜单中有“Internet选项”菜单项,打开后再选“安全”→“自定义级别”,将安全设置中的“允许使用每个对话cookies”设为禁用时,其运行结果如图7-4所示。
图7-4 将系统设为禁用cookies时程序7-1action-check.php的运行结果
cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。
Cookie是一种在本地浏览器端储存数据并以此来跟踪和识别用户的机制。PHP透明地支持HTTP Cookie。从客户端发送的cookie都会被PHP 5自动加入$_COOKIE的全局数组。如果希望对一个Cookie变量设置多个值,则需在cookie的名称后加“["值名称"]”符号。
Cookie是一种在本地浏览器端储存数据并以此来跟踪和识别用户的机制。PHP透明地支持HTTP Cookie。从客户端发送的cookie都会被PHP 5自动加入$_COOKIE的全局数组。如果希望对一个Cookie变量设置多个值,则需在cookie的名称后加“["值名称"]”符号。