PHP脚本对Cookie的读取

当cookie设置成功后,客户端就拥有了cookie文件,用来保存Web服务器为其设置的用户信息。Cookie是以一个普通的文本文件的形式记录的,直接去阅读cookie是没有任何意义的。当客户再次访问网站时,浏览器会自动把与该站点对应的cookie信息全部发回给服务器。可以通过下面的代码来调试现有的cookie:

<?php
  //输出Cookie中保存的所有用户信息
  print_r($_COOKIE);

如果用户不希望网站保存自己的密码,但是在之前已保存的情况下可以通过两种方法来删除需要删除的Cookie。第一种方式,省略setcookie( )函数的所有参数列,仅导入第一个参数Cookie识别名称参数,来删除指定名称的Cookie资料;第二种方式,利用setcookie()函数把目标Cookie设定为“已过期状态”。如下代码所示:

<?php
  //指定一个cookie名,删除客户端指定的cookie资料
  setCookie("account");     //第一种方法
  //设置cookie在当前时间已过期
  setCookie("isLogin","",time()-1);   //第二种方法

在用户登录中,都只有通过验证的用户才能访问相应的网页,在每个PHP脚本中都可以跟踪登录用户的信息。

<?php
  function clearCookie(){
    setCookie("username","",time()-3600);
    setCookie("isLogin","",time()-3600);
  }
  if($_GET["action"] == "login"){
    clearCookie();
    if($_POST["username"] == "admin" && $_POST["password"] == "123456"){
      setCookie("username",$_POST["username"],time()+60*60*24*7);
      setCookie("isLogin","1",time()+60*60*24*7);
      header("Location:index.php");
    }else{
      die("用户名或密码错误");
    }
  }else if($_GET["action"] == "logout"){
      clearCookie();
  }
  ?>
  <html>
      <head><title>用户登录</title></head>
      <body>
        <h2>用户登录</h2>
        <form action="login.php?action=login" method="post">
          用户名<input type="text" name="username" /><br>
          密码<input type="password" name="password" /><br>
          <input type="submit" value="登录">
        </form>
      </body>
    </html>

根据上述action事件参数判断用户执行的是登录还是推出操作,如果是登录则先与数据库进行匹配,匹配成功后则向Cookie中设置username和isLogin两个选项,即登录成功

发布了55 篇原创文章 · 获赞 86 · 访问量 10万+
展开阅读全文

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

©️2019 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览