This is an explanation of the video content.
 用技术延续对ACG的热爱
9

 |   | 

如何用PHP实现登录登出功能(无MySQL版)

使用PHP如何实现登录登出的功能

这里使用三个文件实现,分别是

  • login.html 登录页面

  • login.php 登录逻辑判定程序

  • logout.php 登出逻辑判定程序

在上面两个PHP程序中,我们会使用PHP提供的session机制对登录的用户名进行存取和注销的操作,存取是为了方便下次用户再次访问页面的时候已登录状态的判定,注销是为了用户登出后清除页面用户数据保障用户安全。

login.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录页</title>
</head>

<body>
    <div class="logincard">
        <form action="login.php" method="post">
            <label for="">账号:</label>
            <input type="text" name="username" id="" placeholder="请输入用户名"><br>
            <br>
            <label for="">密码:</label>
            <input type="password" name="password" id="" placeholder="请输入密码">
            <br>
            <br>
            <button type="submit">登录</button>
        </form>
    </div>
</body>

</html>

login.php

<?php
session_start(); //开启session机制,方便下面使用SESSION的函数功能,必要!!!

if (isset($_POST['username']) && isset($_POST['password'])) { //如果存在username和password参数,则进行接下来的步骤
    $username = $_POST['username']; //获取来自前端通过POST方式提交的用户名
    $password = $_POST['password']; //获取来自前端通过POST方式提交的密码

    if (strlen(trim($username)) > 0 && strlen(trim($password)) && !isset($_SESSION['username'])) { //当 !isset($_SESSION['username']) 为true时,判定用户登录成功
        $_SESSION['username'] = $username; //首次登录,将用户名存入到服务端PHP的SESSION中记录,方便后面可以对用户名的重复读取
        echo "<h4>欢迎尊贵的" . $username . ",您已经登录成功!</h4>";
    } else if (isset($_SESSION['username']) && $_SESSION['username'] == $username) { //当username在SESSION存储过且值等于来自前端的$username的时候,判定用户已经登录过
        echo "<h4>尊贵的" . $username . ",您已经登录过,无需重复登录!</h4>";
    } else {
        echo "<h4>登录失败,用户名不符合规范!</h4>";
    }
} else {//以上条件都不满足,说明账号和密码没有填写,判定为非法登录
    echo "<h1>参数错误,请提交账号密码后登录。</h1>";
}

?>

<!-- html代码部分,当用户想退出的时候点击退出的a标签跳转到login.html界面 -->
<html>

<body>
    <a href="./login.html">退出</a>
</body>

</html>

logout.php

<?php
session_start(); //开启session,使用session函数的程序必要!!!
unset($_SESSION['username']); //对所链接的客户端存储在session中的username注销
header('Location: ./login.html'); //利用header头部跳转函数跳转到login.html页面
exit(); //退出页面

session机制是对用户登录登出状态保存的重要判定条件

9 ⚙️服务端 ↦ PHP开发技巧 __ 154 字
 PHP开发技巧 #4