Cookie的应用
eg8-2.php 一个简单的例子,打印$_COOKIE数组的内容
<?PHP//eg:8.2 $value = "my cookie value"; //发送一个简单的cookie setcookie("TestCookie",$value, time()+60*60*24*30); ?> <html> <body> <?PHP if (isset($_COOKIE["TestCookie"])) echo($_COOKIE["TestCookie"] . "<BR>"); print_r($_COOKIE); ?> </body> </html>
eg8-3.php 记录用户访问当前网页的次数
<?PHP if(isset($_COOKIE["num"])) $num = $_COOKIE["num"]; else $num = 0; $num = $num +1; setcookie("num",$num, time()+60*60*24*30); /*删除Cookie数据 setcookie("num",$num, time()-3600); 实际是将有效期设置为过去的时间 */ ?> <html> <body> <?PHP if($num >1) echo("你已是第" . $num . "次访问本站点了。"); else echo("欢迎你首次访问本站。"); ?> <BR><BR>下面是网页的正文<BR> </body> </html>
————————————————————————————————————————————————————————————————————————
用户身份验证时使用cookie
login.php
<html> <head> <meta http-equiv="Content-Language" content="zh-cn"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>用户名</title> </head> <script language="javascript"> function form_onsubmit(obj) { if(obj.txtUserName.value == "") { alert("请输入用户名"); return false; } if(obj.txtPwd.value == "") { alert("请输入密码"); return false; } return true; } </script> <body> <form name="form1" method="post" action=""> <label></label> </form> <div align="center"> <hr color="#000080" size="3" width="80%"> <form method="POST" action="check.php"> <table border="0" width="35%" id="table1" style="line-height: 100%; margin-top: 6; margin-bottom: 6"> <tr> <td> <p style="margin-top: 12px; margin-bottom: 12px">用户名:</td> <td> <p style="margin-top: 12px; margin-bottom: 12px"> <input type="text" name="txtUserName" value="<?PHP echo($_COOKIE["username"]); ?>" size="20"></td>用户信息 <!--添加从Cookie中读取用户名信息的功能--> </tr> <tr> <td> <p style="margin-top: 12px; margin-bottom: 12px">密码:</td> <td> <p style="margin-top: 12px; margin-bottom: 12px"> <input type="password" name="txtPwd" value="<?PHP echo($_COOKIE["password"]); ?>" size="20"> <!--添加从Cookie中读取密码信息的功能--> <input name="checkboxCookie" type="checkbox" checked> <label>保留用户信息一年</label></td> </tr> <tr> <td colspan="2"> <p align="center" style="margin-top: 12px; margin-bottom: 12px"> <input type="submit" value="登 录" name="B1" style="font-size: 11pt; font-family: 宋体" onClick="return form_onsubmit(this.form)"> <input type="reset" value="重 置" name="B2" style="font-family: 宋体; font-size: 11pt"></td> </tr> </table> <p> </p> </form> <p> </div> </body> </html>
check.php
<?PHP //取输入的用户名和密码 $UID=$_POST[‘txtUserName‘]; $PWD=$_POST[‘txtPwd‘]; // 验证用户名和密码 if($UID == "admin" and $PWD == "pass") { echo("您已经登录成功,欢迎光临。"); if($_POST[‘checkboxCookie‘]== "on") { setcookie("username",$UID, time()+60*60*24*365); setcookie("password",$PWD, time()+60*60*24*365); } } else echo("登录失败,请返回重新登录。"); ?>
————————————————————————————————————————————————————————————————————————
Session
eg8-5.php 开始会话并输出Session ID和Session的名字
<?PHP session_start(); echo("session_id()=" . session_id()); echo("<br>"); echo("session_name()=" . session_name()); ?>
eg8-6.php 使用全局数组$_SESSION存取Session数据的例子
<?PHP //全局变量数组$_SESSION设置和获取Session数据,可在程序的任何位置访问它 //error_reporting(0); date_default_timezone_set(‘Asia/Chongqing‘);//系统时间差8小时问题 //开始会话,在访问数组$_SESSION之前调用 session_start(); if($_SESSION["last_visit"]) { echo "你上次访问的时间为: "; echo date("Y-m-d , H:i:s",$_SESSION["last_visit"]); echo "<br>"; echo "访问次数: ".$_SESSION["num_visits"]; } else echo "这是你的第一次访问。"; $_SESSION["last_visit"] = time(); $_SESSION["num_visits"]++; /* 在不关闭浏览器的情况下,访问其他网站再返回,Session会被保留。而关闭浏览器,Session数据就会丢失 */ ?>
eg8-8.php 使用unset()函数释放会话变量的例子--删除会话变量
<?PHP //使用unset()函数释放会话变量 //开始会话 session_start(); $_SESSION["num_visits"]++; unset($_SESSION["num_visits"]); echo($_SESSION["num_visits"]); ?>
eg8-9.php 使用session_unset()函数销毁会话的例子
<?PHP //使用session_unset()函数销毁会话 //开始会话 error_reporting(0); session_start(); //print_r($_SESSION); $_SESSION[‘user‘] = ‘admin‘; session_unset(); if($_SESSION[‘user‘]) echo("用户名:" . $_SESSION[‘user‘] . "<br> session_id=" . session_id()); else echo("no username found" . "<br> session_id=" . session_id()); $_SESSION[‘user‘] = ‘admin‘; /* 显示结果为: no username found session_id=hufnddl8v5lpm6j3bar1m3j8u5 由此我们可知:session_unset()没有释放(销毁) Session ID */ ?>
eg8-10.php 使用session_destroy()函数销毁会话的例子
<?PHP /* 使用session_destroy()函数销毁会话, 可以删除当前用户对应的session文件, 释放sessionID,内存中$_SESSION变量内容依然保留。 */ //开始会话 //error_reporting(0); session_start(); //print_r($_SESSION); $_SESSION[‘user‘] = ‘admin‘; session_destroy(); echo("用户名:" . $_SESSION[‘user‘]); echo("<br> session_id=" . session_id()); /* 显示结果为: 用户名:admin session_id= */ ?>
截图:
时间: 2024-10-11 01:26:57