| |
这里使用三个文件实现,分别是
login.html 登录页面
login.php 登录逻辑判定程序
logout.php 登出逻辑判定程序
在上面两个PHP程序中,我们会使用PHP提供的session机制对登录的用户名进行存取和注销的操作,存取是为了方便下次用户再次访问页面的时候已登录状态的判定,注销是为了用户登出后清除页面用户数据保障用户安全。
<!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>
<?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>
<?php
session_start(); //开启session,使用session函数的程序必要!!!
unset($_SESSION['username']); //对所链接的客户端存储在session中的username注销
header('Location: ./login.html'); //利用header头部跳转函数跳转到login.html页面
exit(); //退出页面
系列课程并未全部上架,处于先行测试阶段