php实现动态登录
简介:
效果:通过前端页面的注册,通过MD5将密码加密,发送到数据库,通过验证数据库的内容实现登录,以及各种保证安全的措施
实验环境:php+html+css+mysql数据表,使用html +css设计注册,以及用户登陆表以及注册表
我们将创建以下文件
1,conn.php //连接数据库
2,login.php登录的后端处理
3,login.html登录前端表
4,loginok.php用户登录完成后的主页面
5,regist.html //用户注册的前端页面
6,regist_ok.php用户注册后端处理文
7,创建数据表 crerate table register(account varchar(20) not null primary kry,
password varchar(50) not null
实验开始
1,建立数据库连接-conn.php
<?php
$servername = "localhost";*
$usename = "root"; *
$passwd = "202019";*
$dbname="lv"; &//标注*号的部分需要根据实际情况进行更换
$conn = new mysqli($servername, $usename, $passwd,$dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}?>
2,建立用户登录前端页面-login.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<style type="text/css">
#aaa{width: 300px;
height: 30px;}
body{background-image:url('MTXX_MH20240504_162234715.jpg');
background-size: cover;
}
</style><body>
<center>
<h2>登录界面</h2>
<form method="POST" action="loginok.php"> //表格提交位置
账号 :<input id="aaa" type="text" name="uname" placeholder="用户名" />
<br /><br/>
密码 :<input id="aaa"type="password" name="pwd" placeholder="密码" />
<br />
<input type="submit" >
<input type="reset"> <a href="regist.php">注册账号</a>
</form>
</center>
</body>
</html>
效果展示
登陆时
登陆后展示
3,用户登录后端loginok.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>welcome</title>
</head>
<style>body {background-image:url('MTXX_MH20240504_162234715.jpg');
background-size:cover;
background-filter:blur(5px); //背景素材放在评论区了</style>
<body><?php
header("content-type:text/html; charest=UTF-8");
session_start();
if(isset($_POST['uname']) && isset($_POST['pwd'])){
$name =filter_var($_POST['uname'],FILTER_SANITIZE_ENCODED);
$pwd = $_POST['pwd'];
$hashedpwd=md5($pwd); //MD5加密
require("conn.php");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM register WHERE (account='$name') AND (password='$hashedpwd')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo"<br>";
echo '<nav class="top-bar"><ul><li><a href ="rly.html">'.$row['account'].'</a>
</li>
<li><a href="#">'.$row['password'].'</a>
</li>
</ul>
</nav>';
}
} else {
echo "没有您要的信息";
}
$conn->close();
}
?>
</body>
</html>
4,用户注册前端 regist.html
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>登录欢迎页</title>
</head>
<style>
body {background-image:url('MTXX_MH20240504_162234715.jpg');
background-size:cover;
background-filter:blur(5px);
}<style rtpe="text/css">
.aaa{width:300px;
height:30px;}
</style>
<style type="text/javascripts"></style>
</style>
<body>
<?php
?>
<center>
<h2>注册界面</h2>
<form method="POST" name="from1" action="regist_ok.php">
姓名: <input class="aaa" type="text" name="username"><br/><br/>
密码: <input class="aaa" type="text" name="password"><br/><br/>
<input type="reset"name="reset" value="重置">
<input type="submit"name="submit" value="注册" onClick="myfunction">
<a href="login.php"><< 返回上一页</a>
<a href="loginok.php">点击注册</a>
</form>
</body>
</html>
效果展示
注册前端
注册后端
5,注册后端 regist_ok.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>regist_ok.php</title>
</head>
<style>body {background-image:url('MTXX_MH20240504_162234715.jpg');
background-size:cover;
background-filter:blur(5px);</style>
<body><?php
header("content-type:text/html; charest=UTF-8");
session_start();
if(isset($_POST['uname']) && isset($_POST['pwd'])){
$name =filter_var($_POST['uname'],FILTER_SANITIZE_ENCODED);//清楚特殊字符防止注入
$pwd = $_POST['pwd'];
$hashedpwd=md5($pwd); //MD5加密
require("conn.php");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM register WHERE (account='$name') AND (password='$hashedpwd')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo"<br>";
echo '<nav class="top-bar"><ul><li><a href ="rly.html">'.$row['account'].'</a>
</li>
<li><a href="#">'.$row['password'].'</a>
</li>
</ul>
</nav>';
}
} else {
echo "没有您要的信息";
}
$conn->close();
}
?>
</body>
</html>
在本次本次实验中,我们将密码加密发送至数据库,保护数据的安全,由于MD5的单项加密过程,使得我们在每次输入同样的数字带来的相同的加密内容,使得在保证用户交互的情况下,保证密码安全,同时在防止sql植入中,我们设计加入了filter函数对特殊字符进行转义,总之,这只是一次很小的进步,师兄,路还长!
相关文章:

php实现动态登录
简介: 效果:通过前端页面的注册,通过MD5将密码加密,发送到数据库,通过验证数据库的内容实现登录,以及各种保证安全的措施 实验环境:phphtmlcssmysql数据表,使用html css设计注册&a…...

Servlet2-HTTP协议、HttpServletRequest类、HttpServletResponse类
目录 HTTP协议 什么是HTTP协议 HTTP协议的特点 请求的HTTP协议格式 GET请求 POST请求 常用的请求头说明 哪些是GET请求,哪些是POST请求 响应的HTTP协议格式 常见的响应码说明 MIME类型说明 HttpServletRequest类 作用 常用方法 如何获取请求参数 po…...
探索数据的内在世界:sklearn中分层特征聚类标签的可视化技术
探索数据的内在世界:sklearn中分层特征聚类标签的可视化技术 在机器学习中,聚类是一种探索数据结构的强大工具。对于具有分层特征的数据,如文本、时间序列或分类标签,聚类结果的可视化可以提供深入的洞见。本文将详细介绍如何在s…...
airtest定位方法
airtest定位方法 最近遇到一个比较新颖的airtest方法,分享给大家。一键三连; airtest是一款用于自动化测试的Python库,被广泛应用于移动应用和游戏的测试中。在进行自动化测试时,定位元素是非常重要的一步,因为只有准…...
排列组合 n*(n-1)*(n-m+1)
n*(n-1)*(n-m1)/m! --# 组合 n*(n-1)*(n-m1)/m! local function get_combinations(n,m) c 1 c0 1 for i 1,m do c c*(n-i1) c c/i end return math.floor(c) end print(get_combinations(10,6)) 打印出来为:210...
Python面试整理-数据处理和分析
在Python中,数据处理和分析是一项非常重要的应用,得益于丰富的第三方库和工具,Python已经成为数据科学家和分析师的首选语言之一。以下是进行数据处理和分析时常用的工具和方法: 1. 数据处理 a. Pandas ● 功能: Pandas 提供了强大的 DataFrame 结构,使得数据操作和预处理…...

职业教育计算机网络综合实验实训室建设应用案例
近年来,职业教育在培养技能型人才方面发挥着越来越重要的作用。然而,传统的计算机网络技术教学模式往往重理论、轻实践,导致学生缺乏实际操作能力和职业竞争力。为了改变这一现状,唯众结合职业教育特点,提出了“教、学…...

【Docomo】5G
我们想向您介绍第五代移动通信系统“5G”。 5G 什么是5G?支持5G的技术什么是 5G SA(独立)?实现高速率、大容量的5G新频段Docomo的“瞬时5G”使用三个宽广的新频段 什么是5G? 5G(第五代移动通信系统&#x…...
Servlet详解(Servlet源码)
Servlet Servlet是运行在Web服务器或应用服务器上的小程序,它作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。Servlet能够接收来自客户端的基于HTTP协议的请求,并且对请求进行响应。 Servlet是用来处理客户端请…...
仓颉--接收控制台输入
package projectNameimport std.console.*main() {Console.stdOut.write("请输入信息1:")var c Console.stdIn.readln() // 输入:你好,请问今天星期几?var r c.getOrThrow()Console.stdOut.writeln("输入的信息1…...

数据库设计效率提高的5大注意事项
数据库设计效率和质量的提高对项目影响深远,能够显著提升数据访问速度,确保数据一致性和完整性,减少应用开发和维护成本,同时提升系统稳定性和用户体验。如果数据库设计不佳会导致项目性能低下,数据访问缓慢࿰…...
C语言笔试题(一)
本专栏通过整理各专业方向的面试资料并咨询业界相关人士,整合不同方向的面试资料,希望能为您的面试道路点亮一盏灯! 1 简单题 C语言中的注释如何写? 答案: 单行注释使用//,多行注释使用/* ... */解析: 注释用于…...
轻松实现远程智能交互:OriginBot与钉钉和GPT4o的集成指南
说明 我之前实现了简单UI来跟OriginBot交互,可以参考这里:古月居 - ROS机器人知识分享社区 但是由于我不是专业的前端开发,写UI还是比较耗时的,所以最近想修改一下这部分。 还有一个原因是,自己开发前端,…...
Qt题目知多少-1
1.简述Qt框架的核心组成部分及其作用。 Qt框架是一个跨平台的应用程序开发框架,其核心组成部分及其作用包括: QtCore模块:这是Qt的基础模块,提供了字符串处理(QString)、容器类(QList, QMap等)、时间日期处理、文件和目录操作、国…...
nginx的反向代理和负载均衡(seventeen day)
一、nginx的反向代理 新建一台虚拟机——static-server(静态服务器/前端服务器) wget https://nginx.org/download/nginx-1.26.1.tar.gz #安装nginx包 ls 安装依赖软件 yum -y install gcc gcc-c yum -y install pcre-devel yum -y install openss…...

BES编译SDK中遇到的perl问题
0 Preface/Foreword 1 问题清单 1.1 perl\r: No such file or directory 编译完成,通过perl,将elf文件转为bin文件,出现错误。 通过查看,项目源文件中,只有一个pl文件: 查看Linux distro使用的WSL版本&am…...

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目
题目: 给你一个二维整数数组 point ,其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处,且右上角在某个点 (x2, y2) 处,其中 x1 < x…...

Django实战:开启数字化任务管理的新纪元
🚀 Django实战:开启数字化任务管理的新纪元 🌐 📖 引言 在数字化转型的浪潮中,任务管理的智能化成为提升组织效能的关键。今天,我将带领大家深入了解我们最新开发的OFTS系统——一款创新的组织任务管理软…...

史上最全网络安全面试题+答案
1、什么是SQL注入攻击 前端代码未被解析被代入到数据库导致数据库报错 2、什么是XSS攻击 跨站脚本攻击 在网页中嵌入客户端恶意脚本,常用s语言,也会用其他脚本语言 属于客户端攻击,受害者是用户,网站管理员也属于用户…...

Python 爬虫入门(五):使用 lxml 解析网页
Python 爬虫入门(五):使用 lxml 解析网页 前言1. lxml 简介1.1 什么是 lxml?1.2 为什么选择 lxml?1.3 安装 lxml 2. lxml 基础2.1 解析 HTML/XML2.2 XPath 表达式2.3 使用 XPath 提取数据 3. 深入解析3.1 处理命名空间…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...