php案例: cookie实现自动登陆

简介: php案例: cookie实现自动登陆

前言

学会使用cookie技术进行自动登录功能的实现.

auto_login.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
    <title>用户登陆</title>
  <style>
    #showTime{
      width:291px;
      border:1px solid #ccc;
      line-height:23px;
      position:absolute;
      left:500px;
      top:48px;
      text-align:center;
    }
  </style>
</head>
<body>
<div id="login">
  <ul>
    <form id="myForm" name="myForm"  method="post" action='user_center.php'>
      <li>
        <tt>
          <label id="log_type" for="email">用&nbsp;&nbsp;&nbsp;户:</label>
        </tt>
        <div>
          <input id="username" name="username" type="text" class="cell" value='<?php
          echo $_COOKIE['username']?>'/>
        </div>
      </li>
      <li>
        <tt>
          <label for="password">密 码:</label>
        </tt>
        <div>
          <input id="password" name="password" type="password" class="cell"  value='<?php
          echo $_COOKIE['userpwd']?>'/>//如果cookie还存在的话,通过$_COOKIE['userpwd']可以获取cookie里面的userpwd值
        </div>
      </li>
      <li>
        <div>
          <input id="auto_login" name="auto_login" type="checkbox" value="on"/>
          <label for="auto_login">下次自动登录</label>
        </div>
      </li>
      <li>
        <div>
          <input id="sub" type="submit" value='提交'/>
        </div>
      </li>
  </form>
</ul>
</div>
</body>
</html>

user_center.php

<?php
  if(!empty($_POST['username'])){//看看用户名存在的话,执行if里面的代码
    if($_POST['username'] =='admin' && $_POST['password'] == 'admin'){
    //用户名+密码==admin执行if里面的代码
      if($_POST['auto_login'] == 'on'){//==on代表点了自动登录checkbox
        setcookie('username',$_POST['username'],time()+3600*7*24);
        //第一个参数是cookie的名字。第二个参数是用户名,第三个参数是过期时间
        setcookie('userpwd',$_POST['password'],time()+3600*7*24);
        echo "<script>alert('开启自动登陆成功!');</script>";
      }
  ?>
    <div style='margin:auto;width:300px;height:30px;line-height:30px;text-align:center;color:#fff;background:#ccc;'>使用cookie实现自动登陆</div>
    <div style='margin:auto;width:300px;border:1px solid #ccc;height:30px;line-height:30px;text-align:center;color:blue;background:#fff;'>
    当前用户:<?echo $_POST['username'];?>,<a href='auto_login.php'>返回主页</a>
    </div>
    <?
    }
  }
  注销:echo "<a href='logout.php?logout=zhuxiao'>注销登陆</a>";
  ?>

logout.php

<?php
if($_GET['logout']){
  setcookie('username','',time()-1);//第三个参数代表过期时间为负数。就销毁cookie了
  setcookie('userpwd','',time()-1);//第三个参数比当前时间还-1.代表没有时间
  echo "<script>alert('注销成功!');location='auto_login.php';</script>";//返回首页
}
?>

效果:


相关文章
|
7月前
|
安全 PHP
从建站到拿站 -- PHP(Cookie设置)
从建站到拿站 -- PHP(Cookie设置)
48 0
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
3月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
3月前
|
前端开发 JavaScript 安全
node登陆接口权限配置cookie-parser、express-session
本文介绍了在Node.js中使用express-session和cookie-parser实现登录接口的权限配置,包括验证码接口的生成和自定义中间件的创建,用于验证用户权限。
30 0
node登陆接口权限配置cookie-parser、express-session
|
4月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
|
5月前
|
缓存 前端开发 小程序
uni-app结合PHP实现单用户登陆
一般APP做单用户登陆会使用第三方消息推送平台,虽然uni-app虽然也可以对接友盟,极光等推送平台。但还是因为时间,对接平台审核等流程时间不允许。之前使用gatewayworkman和websocket做了即时聊天,所以单用户登陆也使用websocket实现。
26 0
|
6月前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
7月前
|
存储 缓存 安全
【PHP开发专栏】PHP Cookie与Session管理
【4月更文挑战第30天】本文介绍了PHP中的Cookie和Session管理。Cookie是服务器发送至客户端的数据,用于维持会话状态,可使用`setcookie()`设置和`$_COOKIE`访问。Session数据存于服务器,更安全且能存储更多数据,通过`session_start()`启动,`$_SESSION`数组操作。根据需求选择Cookie(跨会话共享)或Session(单会话存储)。实战中常组合使用,如Cookie记住登录状态,Session处理购物车。理解两者原理和应用场景能提升Web开发技能。
89 2
|
7月前
|
存储 安全 Java
cookie机制 + java 案例
cookie机制 + java 案例
53 0
|
7月前
|
前端开发 关系型数据库 MySQL
【PHP】thinkPHP6中的MVC思想的小案例
【PHP】thinkPHP6中的MVC思想的小案例
131 2