php登陆页面完整代码 世界上最必不可少的一部分PHP实现(一):
2021-11-10
内容
前言
登录时每个WEB应用程序中最不可缺少的部分可以用来保护资源。现在我们来使用世界上最好的编程语言 PHP 实现。
原理概述
登录分为以下几个部分:登录验证、登录保留、登录和注销
概念介绍
这是会话英语。指WEB服务发送给用户的唯一标识。
是服务器发送给浏览器的信息,由浏览器存储php登陆页面完整代码,每次访问一个页面时捎带,服务器可以读取和判断。
题外话——为什么我用
因为它以文本文件的形式存储在服务器端,所以你不怕在客户端修改内容。其实在服务器端文件上,PHP会自动修改文件权限,只保留系统读写权限,不能通过ftp修改,安全很多。
比如我们要验证用户是否登录,必须在里面保存用户名和密码(可能是md5加密后的字符串),每次请求页面时都要验证。如果用户名和密码存储在数据库中,每次都必须执行一次数据库查询,给数据库造成不必要的负担。因为我们不能只做一次验证。为什么?因为客户端中的信息可能会被修改。如果存储变量表示用户是否登录,变量表示用户是否登录php登陆页面完整代码,变量表示用户是否登录,如果为真则表示登录,如果为未登录, $ 等于 true 后第一次认证是的,下次就不需要验证了,对吧?错误,如果有人伪造一个值为真的 $ 变量,不是立即取得管理权吗?很不安全。
不同的是它存储在服务器端,远程用户不能修改文件内容,所以我们可以简单地存储一个$变量来判断是否登录,第一次验证通过后将$的值设置为true ,然后判断该值是否为 true ,如果不是就切换到登录界面,这样可以减少很多数据库操作。并且可以减少每次验证都需要通过密码的不安全性(如果你没有使用SSL安全协议,验证只需要通过一次)。即使密码是md5加密的,也很容易被截获。
当然,使用起来也有很多优点,比如容易控制,用户自定义存储(存储在数据库中)。这里我就不多说了。
登录认证
登录认证是指用户向服务器发送登录凭据,服务器验证登录凭据的过程。
这部分涉及到数据库IO。
登录
登录保留是指用户在特定条件下(可以是时间或退出页面的次数)无需重新验证即可保持其登录状态的机制。
登录和注销
登录和注销是指服务器销毁用户,使用户脱离登录状态的过程。
执行
.php
// 表单提交后...
$posts = $_POST;
// 清除一些空白符号
foreach ($posts as $key => $value) {
$posts[$key] = trim($value);
}
$password = md5($posts["password"]);
$username = $posts["username"];
$query = "SELECT `username` FROM `user` WHERE `password` = '$password' AND `username` = '$username'";
// 取得查询结果
$userInfo = $DB->getRow($query);
if (!empty($userInfo)) {
// 当验证通过后,启动 Session
session_start();
// 注册登陆成功的 admin 变量,并赋值 true
$_SESSION["admin"] = true;
} else {
die("用户名密码错误");
}
?>
.php
// 防止全局变量造成安全隐患
$admin = false;
// 启动会话,这步必不可少
session_start();
// 判断是否登陆
if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true) {
echo "您已经成功登陆";
} else {
// 验证失败,将 $_SESSION["admin"] 置为 false
$_SESSION["admin"] = false;
die("您无权访问");
}
?>
.php
session_start();
// 这种方法是将原来注册的某个变量销毁
unset($_SESSION['admin']);
// 这种方法是销毁整个 Session 文件
session_destroy();
?>