博客列表 >PHP销毁session及用cookie实现用户七天登陆

PHP销毁session及用cookie实现用户七天登陆

知行合一
知行合一原创
2020年07月27日 15:05:04717浏览

PHP销毁session

unset() 用于释放一个已经存在的session值

  1. $_SESSION['school']='pdu';
  2. //方法1,先判断后删除
  3. if(isset($_SESSION['school'])){
  4. unset($_SESSION['school']);
  5. }
  6. //方法2,直接删除
  7. unset($_SESSION['school']);

session_destroy()销毁session

  1. $_SESSION['name']='zhangsan';
  2. session_destroy();
  3. print_r($_SESSION); //只是销毁了保留用户信息的Session文件,但没有清空Session这个超全局数组中的内容。还可以打印出来内容

设置session超全局数组为空

  1. //使用 $_SESSION = array() 清空 $_SESSION 数组的同时,也将这个用户在服务器端对应的 Session 文件内容清空,但不删除文件
  2. $_SESSION=[];
  3. print_r($_SESSION);

彻底删除session的话,要结合session_destroy()和设置设置session超全局数组为空。

两个文件:
login.php登陆页面
index.php登陆成功显示的页面
login.php代码如下:

  1. <?php
  2. //判断是否处理登陆状态,如果是直接跳转到index.php
  3. if((isset($_COOKIE["isLogin"]) && $_COOKIE["isLogin"]=="1")){
  4. header("Location:index.php");
  5. }
  6. $username=$_POST["username"];
  7. $password=$_POST["password"];
  8. function clearCookie(){
  9. setcookie("username","",time()-3600);
  10. setcookie("password","",time()-3600);
  11. }
  12. if($_POST["submit"]){ if($username=="xiaoming"&&$password=="123456"){
  13. clearCookie();
  14. setcookie("isLogin",1,time()+3600*24*7);//设置cookies日期为一周
  15. setcookie("username",$username,time()+3600*24*7);
  16. setcookie("password",$password,time()+3600*24*7);
  17. header("Location:index.php");
  18. }
  19. else{
  20. exit("用户名或者密码错误!");
  21. }
  22. }
  23. ?>
  24. <form action="" method="post">
  25. <label>用户名:<input type="text" name="username" placeholder="请输入用户名"></label>
  26. <label>密码:<input type="text" name="password" placeholder="请输入密码"></label>
  27. <input type="submit" name="submit">
  28. </form>

index.php页面代码如下

  1. <?php
  2. if(!(isset($_COOKIE["isLogin"]) && $_COOKIE["isLogin"]=="1")){
  3. exit( "<script>alert(\"您还没有登陆,请登陆!\");location.href=\"login.php\"</script>");
  4. }
  5. if ($_GET["action"]=="logout"){
  6. setcookie("username","",time()-3600);
  7. setcookie("password","",time()-3600);
  8. header("Location:login.php");
  9. }
  10. ?>
  11. 欢迎您,<?php echo $_COOKIE["username"] ?> <a href="?action=logout">退出</a>

效果如下:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议