当前位置: 首页 > news >正文

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"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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">
    &nbsp;&nbsp;  <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实现动态登录

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

Servlet2-HTTP协议、HttpServletRequest类、HttpServletResponse类

目录 HTTP协议 什么是HTTP协议 HTTP协议的特点 请求的HTTP协议格式 GET请求 POST请求 常用的请求头说明 哪些是GET请求&#xff0c;哪些是POST请求 响应的HTTP协议格式 常见的响应码说明 MIME类型说明 HttpServletRequest类 作用 常用方法 如何获取请求参数 po…...

探索数据的内在世界:sklearn中分层特征聚类标签的可视化技术

探索数据的内在世界&#xff1a;sklearn中分层特征聚类标签的可视化技术 在机器学习中&#xff0c;聚类是一种探索数据结构的强大工具。对于具有分层特征的数据&#xff0c;如文本、时间序列或分类标签&#xff0c;聚类结果的可视化可以提供深入的洞见。本文将详细介绍如何在s…...

airtest定位方法

airtest定位方法 最近遇到一个比较新颖的airtest方法&#xff0c;分享给大家。一键三连&#xff1b; airtest是一款用于自动化测试的Python库&#xff0c;被广泛应用于移动应用和游戏的测试中。在进行自动化测试时&#xff0c;定位元素是非常重要的一步&#xff0c;因为只有准…...

排列组合 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 结构,使得数据操作和预处理…...

职业教育计算机网络综合实验实训室建设应用案例

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

【Docomo】5G

我们想向您介绍第五代移动通信系统“5G”。 5G 什么是5G&#xff1f;支持5G的技术什么是 5G SA&#xff08;独立&#xff09;&#xff1f;实现高速率、大容量的5G新频段Docomo的“瞬时5G”使用三个宽广的新频段 什么是5G&#xff1f; 5G&#xff08;第五代移动通信系统&#x…...

Servlet详解(Servlet源码)

Servlet Servlet是运行在Web服务器或应用服务器上的小程序&#xff0c;它作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。Servlet能够接收来自客户端的基于HTTP协议的请求&#xff0c;并且对请求进行响应。 Servlet是用来处理客户端请…...

仓颉--接收控制台输入

package projectNameimport std.console.*main() {Console.stdOut.write("请输入信息1&#xff1a;")var c Console.stdIn.readln() // 输入&#xff1a;你好&#xff0c;请问今天星期几&#xff1f;var r c.getOrThrow()Console.stdOut.writeln("输入的信息1…...

数据库设计效率提高的5大注意事项

数据库设计效率和质量的提高对项目影响深远&#xff0c;能够显著提升数据访问速度&#xff0c;确保数据一致性和完整性&#xff0c;减少应用开发和维护成本&#xff0c;同时提升系统稳定性和用户体验。如果数据库设计不佳会导致项目性能低下&#xff0c;数据访问缓慢&#xff0…...

C语言笔试题(一)

本专栏通过整理各专业方向的面试资料并咨询业界相关人士&#xff0c;整合不同方向的面试资料&#xff0c;希望能为您的面试道路点亮一盏灯&#xff01; 1 简单题 C语言中的注释如何写&#xff1f; 答案: 单行注释使用//&#xff0c;多行注释使用/* ... */解析: 注释用于…...

轻松实现远程智能交互:OriginBot与钉钉和GPT4o的集成指南

说明 我之前实现了简单UI来跟OriginBot交互&#xff0c;可以参考这里&#xff1a;古月居 - ROS机器人知识分享社区 但是由于我不是专业的前端开发&#xff0c;写UI还是比较耗时的&#xff0c;所以最近想修改一下这部分。 还有一个原因是&#xff0c;自己开发前端&#xff0c…...

Qt题目知多少-1

1.简述Qt框架的核心组成部分及其作用。 Qt框架是一个跨平台的应用程序开发框架&#xff0c;其核心组成部分及其作用包括&#xff1a; QtCore模块&#xff1a;这是Qt的基础模块&#xff0c;提供了字符串处理(QString)、容器类(QList, QMap等)、时间日期处理、文件和目录操作、国…...

nginx的反向代理和负载均衡(seventeen day)

一、nginx的反向代理 新建一台虚拟机——static-server&#xff08;静态服务器/前端服务器&#xff09; 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 编译完成&#xff0c;通过perl&#xff0c;将elf文件转为bin文件&#xff0c;出现错误。 通过查看&#xff0c;项目源文件中&#xff0c;只有一个pl文件&#xff1a; 查看Linux distro使用的WSL版本&am…...

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目

题目&#xff1a; 给你一个二维整数数组 point &#xff0c;其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处&#xff0c;且右上角在某个点 (x2, y2) 处&#xff0c;其中 x1 < x…...

Django实战:开启数字化任务管理的新纪元

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

史上最全网络安全面试题+答案

1、什么是SQL注入攻击 前端代码未被解析被代入到数据库导致数据库报错 2、什么是XSS攻击 跨站脚本攻击 在网页中嵌入客户端恶意脚本&#xff0c;常用s语言&#xff0c;也会用其他脚本语言 属于客户端攻击&#xff0c;受害者是用户&#xff0c;网站管理员也属于用户&#xf…...

Python 爬虫入门(五):使用 lxml 解析网页

Python 爬虫入门&#xff08;五&#xff09;&#xff1a;使用 lxml 解析网页 前言1. lxml 简介1.1 什么是 lxml&#xff1f;1.2 为什么选择 lxml&#xff1f;1.3 安装 lxml 2. lxml 基础2.1 解析 HTML/XML2.2 XPath 表达式2.3 使用 XPath 提取数据 3. 深入解析3.1 处理命名空间…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...