现在的位置: 首页php-基础语法>正文
cookie 验证登陆  
发表于587 天前 php-基础语法 评论数 4

已经有一个session登陆验证的实例了,就让我们在cookie验证登陆的实例中结束PHP的session和cookie吧。

首先写一个log_cookie.htm页面。

代码如下:

<html>
<head>
<title>Login_phpdo</title>
</head>
<body>
<form method="post" action="check_cookie_login.php">

<div style="width:353">
 <dl>
 <dt></dt>
 <dd><div align="left">Username:<input /></div></dd>
 <dd><div align="left">Psssword:<input /></div></dd>
 <dd>
   <div align="left">Cookie time:<select>
   <option value="0" selected="selected">浏览器进程</option>
   <option value="1">保存1天</option>
   <option value="2">保存30天</option>
   <option value="3">保存360天</option>
   </select></div>
 </dd>
 <dd>
 <p align="center">
<input value="Submit" />
<input value="Reset" />
</p>
</dd>
 </dl>
</div>
</form>
</body>
</html>

表单提交给了check_cookie_login.php页面,用于检测是否存在cookie

代码如下:

<?php
@mysql_connect("localhost","root",'19860924')
or die("数据库连接失败");
@mysql_select_db("mydb")
or die("选择数据库失败");
//获取输入的信息
$username = $_POST['username'];
$passcode = $_POST['passcode'];
$cookie = $_POST['cookie'];
//获取session的值
$query = @mysql_query("select username,userflag from users where username = '$username' and passcode = '$passcode'")
or die("SQL语句执行失败");
//判断用户以及密码
if($row = mysql_fetch_array($query))
{
 //判断权限
 if($row['userflag'] == 1 or $row['userflag'] == 0)
 {
   switch ($cookie)
   {
   case 0:
       setcookie("username",$row['username']);
       break;
     case 1:
       setcookie("username",$row['username'],time()+24*60*60);
       break;
       case 2:
       setcookie("username",$row['username'],time()+24*60*60*30);
       break;
       case 3:
       setcookie("username",$row['username'],time()+24*60*60*365);
       break; 
   }
   header("location:welcome_cookie_login.php");
 }
 else
 {
 echo "userflag不正确";
 }

}
 else
 {
   echo "username或者usercode";
 }
?>

header(“location:welcome_cookie_login.php”)这句将页面转向了欢迎页面。

代码如下:

<?php
session_start();
if(isset($_COOKIE['username']))
{
@mysql_connect("localhost","root",'19860924')
or die("数据库连接失败");
@mysql_select_db("mydb")
or die("选择数据库失败");
$username = $_COOKIE['username'];
//获取userflag
$query = @mysql_query("select userflag from users where username = '$username'")
or die ("SQL语句执行失败");
$row = mysql_fetch_array($query);
$flag = $row['userflag'];
if($flag == 1)
 echo "欢迎管理员".$_SESSION['username']."登陆";
if($flag == 0)
      echo "欢迎用户".$_SESSION['username']."登陆";
      echo "<a href='destroy_cookie_login.php'>注销</a>";
}
else
{
  echo "您没有权限访问此页面";
}
?>

最后我们注销cookie,还记得怎么注销吗?

代码:

<?php
setcookie("username");
?>
【上篇】
【下篇】

cookie 验证登陆:目前有4 条留言

  1. 陈剑 : 2010年10月12日10:52 上午

    有没有那个退出登录后自动清楚cookie呀

    老张 回复:

    @陈剑, 有,header转向清除cookie页面,然后setcookie(“username”)就行了

  2. 黄江进口二手车 : 2010年10月12日4:08 下午

    这个是沙发吗?不会是搞错了吧

    老张 回复:

    @黄江进口二手车, 我这才几个人啊,不是沙发就是板凳,要不就是台阶,很少能到地下室的

不想听你唠叨×