• 基于session的简单登录逻辑


    1  登录页 login.php

    <?php
    session_start();
    //判断一下是否有Session
    if (isset($_SESSION['user']) && $_SESSION['user']==='admin') {
        echo '您已经登录';
        echo "<a href='logout.php'>注销登录</a>";
        exit();
    }
    //登录逻辑
    if (isset($_POST['submit'])) {
        //判断用户名和密码是否正确
        if ( isset($_POST['user']) && isset($_POST['pwd']) && $_POST['user']==='admin' && $_POST['pwd'] === 'admin') {
            //写入session
            if ($_SESSION['user'] = $_POST['user']) {
                //设置cookie成功 跳转到首页
                header('Location:skip.php?url=index.php&info=登录成功');
            } else {
                echo 'cookie设置失败';
            }
        } else {
            header('Location:skip.php?url=index.php&info=登录失败');
        }
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>登录页面</title>
    </head>
    <body>
    <form method="post" action="login.php">
        姓名:<input type="text" name="user"/>
        密码:<input type="password" name="pwd" />
        <input type="submit" name="submit" value="登录">
    </form>
    </body>
    </html>

    2  首页文件  

    <?php
    session_start();//打开一个会话
    if (isset($_SESSION['user']) && $_SESSION['user'] === 'admin') {
        echo "亲爱的{$_SESSION['user']}你好,欢迎回来";
        echo "<br><a href='logout.php'>注销登录</a>";
    } else {
        echo "<a href='login.php'>请登录</a>";
    }

    3 跳转页面 skip.php

    <?php
    //跳转中转页
    if (!isset($_GET['url']) || !isset($_GET['info'])) {
        exit('url 或 info 没有收到');
    }
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>桥页</title>
        <meta http-equiv="refresh" content="3;url=<?php echo $_GET['url'] ?>"> //本节重点 跳转的使用
    </head>
    <body>
        <div style="text-align:center;font-size:20px;"><?php echo $_GET['info'] ?>,3秒后自动跳转!</div>
    </body>
    </html>

    4  退出登录 logout.php

    <?php
    session_start();//先打开session
    
    //如果session有值 我们进行删除操作
    if (isset($_SESSION['user']) && $_SESSION['user'] === 'admin') {
        session_unset();//删除session
        session_destroy();//删除服务端保存session的文件
        setcookie(session_name(),'',time()-3600,'/');//删除客户端cookie中保存的session_id
        header('Location:login.php');//跳转到登录页
    } else {
        echo '退出登录失败 请重试';
    }
  • 相关阅读:
    vue2 在methods 中无法获取this对象
    mysql-set
    laravel 模板
    laravel save() 返回 null
    如何设置电脑允许远程访问并修改电脑用户密码?
    laravel报错:Unable to detect application namespace.
    b站操作系统2程序的顺序执行与并发执行
    b站计算机网络谢希仁4物理层
    b站计算机网络谢希仁2性能
    b站J数据库13之封装通用的增删改查方法
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/13954405.html
Copyright © 2020-2023  润新知