返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php如何实现七天免登录
  • 213
分享到

php如何实现七天免登录

2023-07-04 10:07:05 213人浏览 八月长安
摘要

本篇内容介绍了“PHP如何实现七天免登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现七天免登录的方法:1、在前端创建一个用户选择

本篇内容介绍了“PHP如何实现七天免登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

php实现七天免登录的方法:1、在前端创建一个用户选择七天免登录的按钮;2、在后端中,根据用户提交的用户名和密码查询到用户的id;3、将用户id存入cooike中;4、设置七天的过期时间即可。

php 怎么实现七天免登录?

php中实现7天免登录功能,防止cookie欺骗

1、免登录思路

用户选择七天免登录按钮,后端根据用户提交的用户名和密码查询到用户的id将用户id存入cooike中并设置七天的过期时间。在不清除cookie信息(非正常退出的时候),后台帮助用户登录。实际就是利用cooki实现。

2、验证登录文件:checkLogin.php

<?phpheader('content-type:text/html;charset=utf-8');require './config.php';$username = $_POST['uname'];$passWord = md5($_POST['pwd']);$islogin = $_POST['islogin'];$sql = "SELECT * FROM `mu_user` WHERE `username`=? AND `password`=? ";$stm = $pdo -> prepare($sql);$stm ->bindParam(1,$username);$stm ->bindParam(2,$password);$stm ->execute();$res = $stm->fetch(PDO::FETCH_ASSOC);if($stm->rowCount() == 1){    //验证成功    clearCookie();    if($islogin==1){        //记住密码        setcookie("username",$res['username'],strtotime('+7 days'));        $token = settoken($res['username'],$res['password'],$res['id']);        setcookie("token",$token,strtotime('+7 days'));    }else{        // 无记住密码        setcookie("username",$res['username']);        $token = settoken($res['username'],$res['password'],$res['id']);        setcookie("token",$token);    }    exit("        <script>            alert('登录成功!');            location.href ='index.php';        </script>    ");}else{    //验证失败    exit("        <script>            alert('用户名或密码有误!');            location.href ='login.php';        </script>    ");}//清除cookiefunction clearCookie(){    setcookie("username",'',time()-1800);    setcookie("token",'',time()-1800);}//设置tokenfunction settoken($username,$password,$id){    $salk = "czx";    $token = md5($salk.$username.$password)."*".$id;    return $token;}

3、数据库配置文件:config.php

<?php//主机地址define("DB_HOST","localhost");//数据库用户名define("DB_USER","root");//数据库密码define("DB_PASSWORD","root123");// 数据库型号define("DB_TYPE","mysql");// 数据库名称define("DB_NAME","my_user");//数据库编码define('DB_CHARSET', 'utf8');//数据库端口号define('DB_PORT', '3306');//定义PDO的DSN,数据源名,包括主机名,端口号和数据库名称。define('DSN', DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);try{    //连接数据款    $pdo = new PDO(DSN,DB_USER,DB_PASSWORD);} catch(PDOException $e){     //捕捉特定于数据库信息的PDOEXCEPTION 异常    echo  $e->getMessage();} catch(Throwable $e){    //捕捉拥有Throwable接口的错误或者其他异常    echo $e->getMessage();}

4、登录页面文件 : login.php

<?php    if($_GET['act'] == 'out'){        setcookie("username",'',time()-1800);        setcookie("token",'',time()-1800);    }    $token = $_COOKIE['token'];    $username = $_COOKIE['username'];    if(!empty($username) &&!empty($token)&& ($_GET['act'] != 'out')){        exit("            <script>                alert('用户已登录,请直接访问!');                location.href ='index.php';            </script>        ");    }?><!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>登录</title></head><style>    *{        margin: 0px;        padding: 0;    }    .contater {        border: 1px solid #000;        width: 300px;        display: flex;        flex-direction: column;        margin: auto;    }    .contater>div {        margin-top: 20px;    }    h4 {        text-align: center;    }    .contater > .submit >input{        margin: 15px 140px;        font-size: 1.5rem;    }</style><body><h4 >登录</h4>    <fORM action="checkLogin.php" method="post">        <div>            <div>                <span>用户名:</span>                <input type="text" name="uname">            </div>            <div>                <span>密&nbsp;&nbsp;&nbsp;码:</span>                <input type="password" name="pwd">            </div>            <div>                <input type="radio"" name="islogin" value="1">                <span>记住密码</span>            </div>            <div>                <input  type="submit" value="登录">            </div>        </div>    </form></body></html>

5、首页文件:index.php

<?php    $token = $_COOKIE['token'];    $token_arr = explode("*",$token);    $uid = end($token_arr);//获取用户id    require "./config.php";    $sql = "SELECT * FROM `mu_user` WHERE `id`=?";    $stm = $pdo ->prepare($sql);    $stm ->bindParam(1,$uid);    $stm ->execute();    $result =$stm->fetch(PDO::FETCH_ASSOC);    if($stm->rowCount()==1){        $salk = "czx";        $token_res = md5($salk.$result['username'].$result['password']);        if($token_res != $token_arr[0]){            exit("                <script>                alert('请先登录');                loction.href ='login.php';                    </script>                        ");        }    }else{        exit("            <script>                alert('请您先登录');                location.href='login.php';            </script>        ");    }?><!DOCTYPE html><html>  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>首页</title>  </head>  <style>    * {      margin: 0px;      padding: 0px;      box-sizing: border-box;    }    h2 {      text-align: center;    }    a {      text-decoration: none;      font-size: 1.5rem;      color: darkgray;    }    a:hover {      background-color: lightskyblue;      border-radius: 5%;          }    li {        list-style-type: none;        color: darkgray;    }    span {        color: darkgray;        font-size: 1.5rem;        margin-right: 15px;        color:burlywood    }    .top {            background-color: linen;      display: flex;      flex-flow: row nowrap;      justify-content: space-between;    }    .top > div {      margin: 10px 40px;    }    .column {            display: flex;      flex-flow: row nowrap;      justify-content: space-around;    }    .column > li {      margin-right: 65px;      padding: 0px 20px;    }  </style>  <body>    <h2>陶转转首页</h2>    <div>      <div>        <ul>          <li><a href="">LOGo</a></li>          <li><a href="">首页</a></li>          <li><a href="">分类一</a></li>        </ul>      </div>      <div>        <span>欢迎您,<?php echo $result['username'];?></span>        <a href="./login.php?act=out">退出</a>      </div>    </div>  </body></html

“php如何实现七天免登录”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: php如何实现七天免登录

本文链接: https://lsjlt.com/news/344436.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php如何实现七天免登录
    本篇内容介绍了“php如何实现七天免登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php实现七天免登录的方法:1、在前端创建一个用户选择...
    99+
    2023-07-04
  • php 怎么实现七天免登录
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 怎么实现七天免登录?php中实现7天免登录功能,防止cookie欺骗1、免登录思路 用户选择七天免登录按钮,后端根据用户提交的用户名和密码查询到...
    99+
    2024-04-02
  • php如何实现七天自动登录
    这篇文章主要讲解了“php如何实现七天自动登录”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现七天自动登录”吧!php实现七天自动登录的方法:1、新建show.php文件实现登录...
    99+
    2023-06-22
  • php 怎么实现七天自动登录
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php 怎么实现七天自动登录?PHP实现一周内自动登陆:新建四个文件 show.php<php > <html > <head> ...
    99+
    2014-09-26
    PHP
  • 在php中怎么实现7天免登录功能
    这篇文章主要介绍了在php中怎么实现7天免登录功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。所谓7天免登录,即用户在登录的时候选择了记住用户信息,后台会自动设置7天的有效...
    99+
    2023-06-14
  • php如何实现SSO登录
    本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。php如何实现SSO登录SSO单点登录设计及PHP实现建议先熟悉单点登录SSO相关概念。 SSO:单点登录,一次登录,所有相关系统均可以进入,无需重复登录实现方案:共享...
    99+
    2019-04-16
    php SSO
  • php如何实现自动登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。首先在用户第一次登陆的时候,如果勾选了一周内免登陆,则在登陆操作完成之后,存储一个自动登录的cookie,这个cookie可以是“$value是用户的&quo...
    99+
    2015-06-25
    php 自动登录
  • php如何设置登录3天失效
    本篇内容主要讲解“php如何设置登录3天失效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何设置登录3天失效”吧!先来看一下为什么需要限制登录状态的有效期。通常情况下,用户登录一个网站或...
    99+
    2023-07-05
  • php如何实现验证码登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。验证码在我们的日常生活中非常常见,使用验证码有诸多好处,如:防止恶意的破解密码。如一些黑客为了获取到用户信息,通过不同的手段向服务器发送数据,验证猜测用户信息...
    99+
    2017-10-10
    php 验证码
  • PHP如何实现扫码登录QQ
    这篇文章主要介绍“PHP如何实现扫码登录QQ”,在日常操作中,相信很多人在PHP如何实现扫码登录QQ问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP如何实现扫码登录QQ”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • php如何实现简单密码登录
    php如何实现简单密码登录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php实现简单密码登录的方法:1、创建login.html;2、创建login.php;...
    99+
    2023-06-26
  • PHP如何实现登录的Cookie存储
    这篇“PHP如何实现登录的Cookie存储”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP如何实现登录的Cookie存储...
    99+
    2023-07-05
  • php退出登录功能如何实现
    要实现PHP退出登录功能,可以通过以下步骤实现:1. 在登录成功后,将用户的登录状态保存在会话(session)中。可以使用`ses...
    99+
    2023-10-11
    php
  • 如何在PHP中实现登录功能
    在开发网站或应用程序的过程中,往往需要提供一个登录功能,以便用户可以访问需要身份验证的页面或功能。PHP作为一种流行的 Web 开发语言,提供了许多方法来实现登录功能。在本文中,我们将讨论一些常见的方法和技巧,帮助开发者轻松实现 PHP 中...
    99+
    2023-05-21
    PHP 实现 登录功能
  • php如何实现app的验证登录
    这篇文章主要介绍了php如何实现app的验证登录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何实现app的验证登录文章都会有所收获,下面我们一起来看看吧。一、前置知识熟悉PHP语言基础熟悉HTTP请求...
    99+
    2023-07-05
  • 如何实现Centos6.5中ssh免密码登录配置
    本篇内容介绍了“如何实现Centos6.5中ssh免密码登录配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0.说明这里为了方便说明问题,...
    99+
    2023-06-10
  • cookie+mybatis+servlet实现免登录时长两天半的整体流程
    目录前言流程大概框架三层架构架子项目创建—导入依赖创建mapper层接口三层架构的service层前言 应用主要用到的技术有session、cookie、转发、重定向、f...
    99+
    2024-04-02
  • php如何实现小程序登录功能
    本篇内容介绍了“php如何实现小程序登录功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RequestTask说明方法说明RequestT...
    99+
    2023-06-21
  • PHP如何实现JWT的Token登录认证
    本篇内容介绍了“PHP如何实现JWT的Token登录认证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、JWT简介JSON Web Tok...
    99+
    2023-06-21
  • php登录不用数据库如何实现
    这篇文章主要讲解了“php登录不用数据库如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php登录不用数据库如何实现”吧!php登录不用数据库的实现方法:1、创建好一个index.ph...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作