会员中心通过AJAX、JSON、PHP、MySql等技术实现注册和登录功能(1+X Web前端开发中级 例题)——初稿

news2025/8/14 18:53:19

 📄题目要求 

  • 阅读下列说明、效果图和代码,进行动态网页开发,补充代码(1)-(30)。
  • 会员中心,需要先注册后登录,先要求应用HTML、CSS、AJAX、JSON、PHP、MySql等技术实现注册和登录功能。项目包含主页index.html、style.css、login.js、register.php和login.php文件,其中,主页面index.html是首页,只显示“登录成功”字样;style.css为主页样式文件;login.php为判断登录,register.php为注册数据,返回JSON格式数据。
  • 主页分为两个部分:登录和注册,当点击登录和注册按钮时,通过ajax发送请求到login.php或者register.php返回JSON格式的数据。在主页上通过ajax拿到数据后,使用JQuery进行DOM操作。

  • 【问题1】根据现有的代码,补全样式代码,和效果图一致

    【问题2】根据提示,完成数据库的搭建

    【问题3】根据现有代码和提示,完成数据库的链接

    【问题4】用ajax完成数据请求,并处理接收到的数据

🧩效果图

 1

💻HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>第二题-登录</title>
	<link rel="stylesheet" href="css/login.css">
	<script src="js/jquery.min.js"></script>
</head>
<body>
	<div class="box">
		<div class="con">
			<ul class="title">
				<li class="cur">登录</li>
				<li>注册</li>
			</ul>
			<div class="form">
				<form class="login" style="display: block;">
					<ul>
						<li>
							<input type="text" class="loginUsername" name="username" placeholder="请输入用户名">
						</li>
						<li>
							<input type="password" class="loginPwd" name="password" placeholder="请输入密码">
						</li>
						<li>
							<button type="button" class="loginBtn">登录</button>
						</li>
					</ul>
				</form>
				<form class="register">
					<ul>
						<li>
							<input type="text" class="registerUsername" name="username" placeholder="请输入用户名">
						</li>
						<li>
							<input type="password" class="registerPwd" name="password" placeholder="请输入密码">
						</li>
						<li>
							<input type="password" class="registerPwdOk" name="passwordOk" placeholder="请确认密码">
						</li>
						<li>
							<button type="button" class="registerBtn">注册</button>
						</li>
					</ul>
				</form>	
			</div>
		</div>
	</div>
	<script src="js/login.js"></script>
</body>
</html>

💻CSS代码

body,h1,h2,h3,h4,h5,h6,p,ol,ul,dl,dd{
	margin: 0;
	padding: 0;
}
ul,ol{
	list-style: none;
}
input{
	width: 100%;
	height: 40px;
	padding:0 10px;
	border:1px solid #d8d8d8;
	_____(1)_______;/*设置盒子大小始终是100%*/
}
.box{
	position: absolute;
	top:50%;
	left:50%;
_____(2)_transform:translate(-50%,-50%)______;/*设置盒子水平垂直居中,用CSS3的方法*/
	width: 400px;
	padding:20px;
	_____(3)____: 0 0 15px #ccc;/*设置盒子投影*/
	border:1px solid #ccc;
}
.box .title{
	_______(4)______;/*设置弹性盒子*/
	________(5)___justify-content:space-between__;/*设置弹性盒子两端对齐*/
	text-align: center;
	margin-bottom: 20px;
}
.box .title li{
	flex:1;
}
.box .title li.cur{
	____(6)__font-weight____: 600;/*文字加粗*/
	color:orange;
}
.box .title li:first-child{
	border-right:1px solid #ccc;
}
.box .form form{
	display: none;
}
.box form ul li{
	margin-bottom:10px;
}
button{
	width: 100%;
	height: 40px;
	border:none;
	____(7)_border-radius_____: 5px;/*设置圆角*/
	background-color: green;
	color:#fff;
}

💻MySQL代码

//删除存在list数据库

____(8)____ DATABASE IF EXISTS list;

//创建list数据库

______(9)_________;

USE list;

CREATE TABLE `admin`

(

   `id` int (4) NOT NULL (10)auto_increment COMMENT '序号',

   `username` varchar (16) NOT NULL COMMENT '用户名',

`password` varchar (16) NOT NULL COMMENT '密码',

   `time` datetime DEFAULT ___(11)_current_timestamp___  COMMENT '创建时间',

   (12)primary key (`id`)

)ENGINE= InnoDB DEFAULT CHARSET= utf8;

💻PHP代码

1

<?php 
// header ("Content-type: text/html; charset=utf-8")
$servername = "localhost";
$username = "root";
$password = "123456";

// 创建连接
$conn = _____(13)_mysqli_connect____($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

mysqli_query($conn,'set names utf8');

// 查询数据库
_____(14)_mysqli_select_db___($conn,"list");

1

<?php
//引入conn.php页面
______(15)___include(“conn.php”)____;
$username=$_POST['username'];
$password=$_POST['password'];
// 判断用户是否已经存在
$sqlUsername="____(16)_
$resultUsername = mysqli_query($conn, $sqlUsername);

if($resultUsername && mysqli_num_rows($resultUsername)>0){
	$res = array(
	    'code'=>2,
	    'message'=>'用户名已经存在'
	);
}else{
	//插入SQL语句,并发送
	$sql="___________(17)________________";
	$result = mysqli_query($conn, $sql);
	//解析结果集
	if($result){
	    $res = array(
		    'code'=>1,
		    'message'=>'注册成功'
		);
	}else{
	    $res = array(
		    'code'=>0,
		    'message'=>'注册不成功'
		);
	}
	
}
//将$res转成json
echo_____(18)_ ____;
//关闭数据库
_____(19)___ _____;
?>
【问题3 代码:login.php】
在登录页表单中填入数据,点击“登录”按钮,通过ajax去请求login.php页面,判断登录是否成功。
<?php
//引入conn.php页面
______(15)_______;

$username=$_POST['username'];
$password=$_POST['password'];

//4.定义SQL语句,并发送
$sql="_________(20)____________";
$result = mysqli_query($conn, $sql);

//5.解析结果集
if($result && mysqli_num_rows($result)>0){
    $res = array(
	    'code'=>1,
	    'message'=>'登录成功'
	);
}else{
    $res = array(
	    'code'=>0,
	    'message'=>'用户名密码输入有误'
	);
}
//将$res转成json
echo_____(18)_____;
//关闭数据库
_____(19)________;

?>

💻JavaScript代码

$(function(){
	$(".title li").click(function(){
//给点击的元素添加类,将其他元素的cur类移除
		$(this).____(21)_ ___('cur').siblings().___(22)_ ____('cur');
		$(".form form").eq(__(23)___).css("display","block").____(24)____().css("display","none");
	})

	$(".loginBtn").click(function(){
//获取表单中的值
		var username=$(".login .loginUsername").__(25)_val()___;
		var password=$(".login .loginPwd").__(25)_val()__;
		$.ajax({
			url: 'http://localhost/second/login.php',
			type: 'post',
			dataType: '__(26)_json___',
			___(27)__ _: {
				username: username,
				password: password
			}
		})
		.done(function(data) {
			if(data.code==1){
           //登录成功加载首页
				_____(28)_______="http://localhost/second/index.html"; 
			}else{
           //弹出后台返回的message信息
				_____(30)______;
			}
		})
		
	})

	$(".registerBtn").click(function(){
		var username=$(".register .registerUsername").__(25)___;
		var password=$(".register .registerPwd").__(25)___;
		var passwordOk=$(".register .registerPwdOk").__(25)___;
       //判断两次密码输入是否一致
		if(_____(29)______){
			$.ajax({
				url: 'http://localhost/second/register.php',
				type: 'post',
				dataType: '__(26)_ ___',
			    ___(27)___: {
					username: username,
					password: password
				}
			})
			.done(function(data) {
				if(data.code==1){
				//弹出后台返回的message信息
				    _____(30)_ _____;
					____(28)_____="http://localhost/second/login.html"; 
				}else{
				//弹出后台返回的message信息
				    _____(30)______;
				}
			})
		}else{
			alert("密码和确认密码不一致");
		}	
	})
})

🎯实现效果

📰完整答案

试题二(45分)
【问题】(45分)
(1)box-sizing: border-box 
(2)transform: translate(-50%,-50%)
(3)box-shadow
(4)display: flex
(5)justify-content: space-between
(6)font-weight
(7)border-radius
(8)DROP(不区分大小写)
(9)CREATE DATABASE list
(10)auto_increment
(11)current_timestamp
(12)primary key
(13)new mysqli
(14)mysqli_select_db
(15)include("conn.php")
(16)select
(17)insert into admin(username,password) values('$username','$password')
(18) json_encode($res)
(19)mysqli_close($conn)
(20)select * from admin where username='$username' and password='$password'
(21)addClass
(22)removeClass
(23)$(this).index()
(24)siblings
(25)val()
(26)json
(27)data
(28)window.location.href
(29)password==passwordOk
(30)alert(data.message)
(每空1.5分,共45分)


🎯点赞收藏,防止迷路🔥 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

反射机制(复习)

反射机制 反射机制定义反射机制的功能反射机制主要的API反射机制演示对 Class 的理解Class实例获取的四种方式Class 对应内存结构说明加载Properties文件的俩种方式调用运行时类的结构调用运行时类的指定属性调用运行时类指定的方法调用运行时类指定的构造器反射的应用&#xf…

技术公开课|深度剖析 Java 的依赖管理,快速生成项目 SBOM清单

背景 近年来软件供应链安全风险涌现&#xff0c;无论是 Fastjson、Log4j 等基础组件的 0day&#xff0c;来源于开源的风险事件不断上升&#xff0c;对于研发以及安全同学来说&#xff0c;都是在不断的摸索建立有效的预防及解决机制&#xff0c;公开课将以风险治理为最终目标、…

Java -- 每日一问:谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

典型回答 所谓隔离级别&#xff08;Isolation Level&#xff09;&#xff0c;就是在数据库事务中&#xff0c;为保证并发数据读写的正确性而提出的定义&#xff0c;它并不是 MySQL 专有的概念&#xff0c;而是源于ANSI/ISO制定的SQL-92标准。 每种关系型数据库都提供了各自特…

(STM32)从零开始的RT-Thread之旅--PWM驱动ST7735调光

上一章&#xff1a; (STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(1) 上一章我们先用SPI读取到了LCD的ID&#xff0c;这一章则是使用PWM调光点亮屏幕&#xff0c;因为测试这块屏幕时&#xff0c;发现直接设置背光引脚为高好像无法点亮&#xff0c;好像必须使用PWM调光&…

信而泰自动化OSPFv2测试小技巧

OSPFv2协议简介 OSPFv2&#xff08;开放式最短路径优先版本2&#xff09;是互联网协议&#xff08;IP&#xff09;网络的路由协议。它使用链路状态路由&#xff08;LSR&#xff09;算法&#xff0c;并且属于在单个自治系统&#xff08;AS&#xff09;内运行的内部网关协议&…

Inter RealSense深度相机ROS驱动

文章目录知识目标1. 深度相机的分类及工作原理2. Inter RealSense D415相机知识目标 学习深度相机的分类和工作原理&#xff1b; 学习Intel RealSense D415相机硬件构成和工作原理。 1. 深度相机的分类及工作原理 深度相机&#xff08;可以测量物体到相机的距离&#xff09;…

Java三大特性篇之——多态篇(千字详解)

JAVA面向对象编程有三大特性&#xff1a;封装、继承、多态,在我们学习了继承后&#xff0c;我们将继续学习多态。 文章目录前言&#xff1a;什么是多态&#xff1f;一、多态实现二、再谈重写三、向上转移四、多态优缺点五、多态案例最后前言&#xff1a;什么是多态&#xff1f;…

MR场景直播-帮助企业高效开展更有意思的员工培训

阿酷TONY / 2022-11-18 / 长沙 MR场景直播、MR培训场景和内容呈现以及直播互动功能&#xff0c;帮助企业高效开展员工培训&#xff0c;让整个培训过程更高效~~~ MR场景直播有哪些有意思的地方呢&#xff1f;先来一个图&#xff1a; ▲ 模拟真实光照还原现实景 丰富培训场景&a…

SQL实用功能手册

SQL实用功能手册 SQL基础复习 SQL结构化查询语言&#xff0c;是一种访问和处理数据库的计算机语言 对数据库操作对表操作对数据进行CRUD操作操作视图、存储过程、索引 环境基础操作 安装mysql、启动mysql、配置环境变量检查mysql版本&#xff1a;mysql --version链接mysql…

开源共建 | Dinky 扩展批流统一数据集成框架 ChunJun 的实践分享

一、前言 ChunJun&#xff08;原FlinkX&#xff09;是一个基于 Flink 提供易用、稳定、高效的批流统一的数据集成工具&#xff0c;既可以采集静态的数据&#xff0c;比如 MySQL&#xff0c;HDFS 等&#xff0c;也可以采集实时变化的数据&#xff0c;比如 binlog&#xff0c;Ka…

(九)DateTime——PHP

文章目录第九章 Date & Time1 time()获取时间戳2 getDate()转换时间戳3 date()转换时间戳第九章 Date & Time 1 time()获取时间戳 time()函数返回的整数表示自1970年1月1日格林尼治标准时间午夜起经过的秒数。这一时刻称为UNIX历元&#xff0c;自那时起经过的秒钟数称…

Metabase学习教程:提问-1

创建交互式图表 可以通过使用查询生成器、构建模型或添加自定义目标来创建图表。供用户在Metabase中钻取数据。类似&#xff1a; 图1。放大特定类别和时间范围&#xff0c;然后查看构成图表上某个条形图的订单。 如果您只使用SQL编写过问题&#xff0c;那么您可能会忽略这样一…

颠覆IoT行业的开发神器!涂鸦智能重磅推出TuyaOS操作系统【程序员必备】

1 前言 作为降低 IoT 技术门槛的开发神器&#xff0c;TuyaOS 操作系统重磅发布 3.6.0 新版本啦&#xff01;针对设备安全、功耗、通信速率等关键功能&#xff0c;做了重大创新和优化升级。为了助力开发者更快速便捷地接入涂鸦IoT PaaS&#xff0c;并低门槛开发出有创意的智能单…

RabbitMQ初步到精通-第三章-RabbitMQ面板及环境搭建

第三章-RabbitMQ面板及环境搭建 1、RabbitMQ面板介绍 Rabbitmq安装完毕后&#xff0c;若是本地环境&#xff0c;打入&#xff1a;http://localhost:15672/#/ 进入到MQ的控制台页面中&#xff1a; 可以观察到此页面涉及的各个TAB&#xff0c;和我们前面介绍到的rabbitMQ架构中…

Docker入门学习笔记(狂神版)

下述笔记是自己花一天时间看B站狂神说Docker视频的笔记&#xff0c;下列的笔记是根据自己的实践的记录下来的&#xff0c;若想细学掌握Docker建议自行观看&#xff08;《Docker入门到精通》&#xff09;&#xff0c;去观看狂胜的视频记得三连支持一下。他的Docker讲解个人觉得是…

每日一个设计模式之【代理模式】

文章目录每日一个设计模式之【代理模式】☁️前言&#x1f389;&#x1f389;&#x1f389;&#x1f33b;模式概述&#x1f331;代理模式的实现&#x1f340;静态代理&#x1f340;动态代理&#x1f433;JDK代理&#x1f433;CGLib代理&#x1f340;拓展&#x1f433;虚拟代理&…

UE 5.1正式发布,有哪些值得一试的新功能?

UE 5.1正式发布&#xff0c;所以今天咱们就来看看最新版都具体更新和改进了哪些功能吧—— Nanite和Lumen Nanite和Lumen是UE 5.0版本更新的两个主要内容&#xff0c;UE 5.1则是对其进行进一步的改进。 Nanite添加了对双面材质和新的可编程光栅化程序的支持&#xff0c;可以通…

认识前端闭包

1、前言&#xff1a;&#xff08;先介绍一下函数的存储原理&#xff09; &#xff08;1&#xff09;基本函数存储原理&#xff1a; 首先我们定义一个函数&#xff0c;然后调用&#xff0c;如下&#xff1a; <script>function test(){let name yiyiconsole.log(name)}t…

未来的产品经理,需要什么样的原型设计工具?

我和原型工具的往事 作为一只工龄十年的产品汪&#xff0c;我一直在使用原型设计工具——摹客 &#xff0c;对于摹客可谓耳熟能详。 初次听说&#xff0c;是产品社群里的点赞安利&#xff1a;做移动端&#xff0c;用摹客。 当时正值2015年&#xff0c;移动端热到不行&#x…

【动态规划】字串中回文的个数

一、题目描述 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 注&#xff1a; 回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符…