PHP+MySQL+Ajax实现注册功能

本文使用原生PHP和mysql数据库,使用jquery的ajax实现注册功能。

注册页面

注册页面由,html表

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用户注册页面</title><style>.container {width: 300px;margin: auto;padding: 20px;border: 1px solid #ccc;border-radius: 5px;}input[type="text"], input[type="email"], input[type="password"] {width: 100%;padding: 12px 20px;margin: 8px 0;display: inline-block;border: 1px solid #ccc;box-sizing: border-box;}button {background-color: #4CAF50;color: white;padding: 14px 20px;margin: 8px 0;border: none;cursor: pointer;width: 100%;border-radius: 5px;}button:hover {opacity: 0.8;}#message {color: red;}</style><script src="jquery.min.js"></script>
</head>
<body><div class="container"><h2>用户注册</h2><form id="registerForm"><label for="username">用户名:</label><input type="text" id="username" name="username" required><br><label for="email">邮箱:</label><input type="email" id="email" name="email" required><br><label for="password">密码:</label><input type="password" id="password" name="password" required><br><button type="submit">注册</button></form><p id="message"></p></div><script>document.getElementById('registerForm').addEventListener('submit', function(event) {event.preventDefault();var username = document.getElementById('username').value;var email = document.getElementById('email').value;var password = document.getElementById('password').value;if (!validateUsername(username) || !validateEmail(email) || !validatePassword(password)) {document.getElementById('message').innerText = '请检查您的输入信息是否正确';return;}// 这里可以添加发送请求到服务器进行实际的注册操作$.ajax({url: 'register.php',method: 'POST',data: {username: username, password: password, email: email},dataType: 'json',success: function(response) {if(response.status == 'success') {alert('注册成功');// 处理请求成功后的操作//window.location.href = "yourRedirectUrl"; // 页面跳转到需要的 URL} else {alert('注册失败:' + response.message);}},error: function(xhr, status, error) {console.log('Error: ' + xhr.responseText);}});// 模拟注册成功后的提示// document.getElementById('message').innerText = '注册成功!';// 清空表单this.reset();});function validateUsername(username) {// 实际中应包含更复杂的验证逻辑,这里仅作简单示例return username.length > 0;}function validateEmail(email) {// 使用正则表达式进行邮箱格式验证var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;return re.test(email);}function validatePassword(password) {// 实际中应包含更复杂的验证逻辑,比如长度、特殊字符等,这里仅作简单示例return password.length > 0;}</script>
</body>
</html>

创建数据库sql

创建数据库

CREATE DATABASE db100;

创建数据表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`password` varchar(255) NOT NULL,`email` varchar(255) DEFAULT NULL,`regtime` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

数据库连接文件

<?php 
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "db100";$conn = new mysqli($servername, $username, $password, $dbname);if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}?>

注册PHP文件

<?phpinclude 'conn.php';
// 获取前端传来的数据
$username = $_POST['username'];
// $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 对密码进行哈希加密
$password = $_POST['password'];
$email = $_POST['email'];// 验证输入并尝试插入数据
$sql = "INSERT INTO user (username, password, email)
VALUES (?, ?, ?)";$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $username, $password, $email);if ($stmt->execute()) {echo json_encode(array('status' => 'success'));
} else {echo json_encode(array('status' => 'error', 'message' => '注册失败,请检查您的输入或稍后再试.'));
}$stmt->close();
$conn->close();
?>

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

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

相关文章

静态路由、代理ARP

目录 静态路由静态路由指明下一跳和指明端口的区别代理ARP 我们知道&#xff0c;跨网络通信需要路由 路由有三种类型&#xff1a; 1.直连路由。 自动产生的路由&#xff0c;当网络设备连接到同一网络时&#xff0c;他们可以自动学习到对方的存在。自动学习相邻网络设备的直连信…

Python:类(class)静态方法(staticmethod)和类方法(classmethod)

当定义类时&#xff0c;有两种特殊类型的方法&#xff1a;静态方法&#xff08;staticmethod&#xff09;和类方法&#xff08;classmethod&#xff09;。它们可以在类中定义&#xff0c;与实例化的对象无关。 静态方法&#xff08;staticmethod&#xff09;&#xff1a; 静态…

用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人

在本文中&#xff0c;使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序&#xff0c;可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few…

盛元广通实验室业务流审批管理系统2.0

系统通过对取样、分析、数据处理、检验报告等分析全过程中多种影响因素的有效管理&#xff0c;强化检验质量&#xff0c;获得准确可靠的分析成果。业务流审批管理系统主要包括了检测管理、业务受理、样品管理、资源质量管理、分包管理、报告生成、统计分析等&#xff0c;系统能…

7N65-ASEMI高压NPN型MOS管7N65

编辑&#xff1a;ll 7N65-ASEMI高压NPN型MOS管7N65 型号&#xff1a;7N65 品牌&#xff1a;ASEMI 连续漏极电流(Id)&#xff1a;4A 漏源电压(Vdss)&#xff1a;650V 栅极阈值电压&#xff1a;30V 单脉冲雪崩能量&#xff1a;150mJ 集电极电流&#xff08;脉冲&#xff…

网络安全B模块(笔记详解)- 网络爬虫渗透测试

LAND网络渗透测试 1.进入虚拟机操作系统:BT5中的/root目录,完善该目录下的land.py文件,填写该文件当中空缺的Flag1字符串,将该字符串作为Flag值(形式:Flag1字符串)提交;(land.py脚本功能见该任务第6题) 输入flag sendp(packet) Flag:sendp(packet) 2.进入虚拟机操作…

关键字、标志符、变量、基本数据类型

1、关键字 1.1、定义 定义&#xff1a;被JAVA语言赋予了特殊含义&#xff0c;用作专门用途的字符串&#xff08;或单词&#xff09; 特点&#xff1a;全部关键字都是小写字母 上源码&#xff1a; 代码中定义类的关键字class&#xff0c;定义一个订单控制器类 ​​​​​​​…

用Java爬取新房二手房数据看总体大环境

都说现在房市惨淡&#xff0c;导致很多人在观望&#xff0c;那么今天我写一段爬虫&#xff0c;主要是抓取各地新房以及二手房成交状况&#xff0c;然后了解总体楼市是否回暖上升。 以下是Java爬虫程序的代码示例&#xff0c;用于抓取贝壳网新房和二手房数据&#xff1a; impor…

污水处理成套设备如何选择

污水处理是现代社会中不可或缺的一个重要环节&#xff0c;它涉及到环保领域&#xff0c;与人们的生活和健康息息相关。而污水处理成套设备的选择则显得尤为重要&#xff0c;因为合适的设备能够有效地解决水污染问题&#xff0c;提高环境质量。 在选择污水处理成套设备时&#x…

MySQL技能树

MySQL作为一款广泛使用的关系型数据库管理系统&#xff0c;提供了丰富多样的SQL语句以支持数据的创建、查询、更新和删除等操作。以下是一份MySQL语句操作大全的概览&#xff0c;涵盖从数据库管理到复杂查询的常用命令&#xff1a; ### 一、数据库管理&#xff08;DDL - 数据定…

【面试高频算法解析】算法练习7 贪心算法

前言 本专栏旨在通过分类学习算法&#xff0c;使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目&#xff0c;帮助您深度理解每种算法&#xff0c;避免出现刷了很多算法题&#xff0c;还是一知半解的状态 专栏导航 二分查找回溯&#xff08;Backtracking&…

Python绘制茎叶图:plt.stem

文章目录 简介参数演示 简介 茎叶图从外观来看&#xff0c;更像是火柴&#xff0c;由基线、茎线、茎头三部分构成。最简单的示例如下 import numpy as np import matplotlib.pyplot as plt plt.stem(np.sin(np.arange(10))) plt.show()参数 stem的完整参数如下 stem([locs,…

大模型缩放法则

KM&#xff08;Kaplan-McCandlish&#xff09;缩放法则 KM缩放法则是由OpenAI的研究员Jared Kaplan和Sam McCandlish提出的&#xff0c;用于描述大型语言模型&#xff08;LLMs&#xff09;如何随着模型大小、数据量和计算资源的增加而提高性能。这个法则基于经验数据表明&…

如何写一个windows上停止nginx的脚本

1.创建脚本 可以使用批处理脚本&#xff08;.bat&#xff09;来停止 Windows 上运行的 Nginx 进程。以下是一个简单的示例&#xff1a; 首先&#xff0c;创建一个名为 stop_nginx.bat 的文本文件&#xff0c;然后将以下命令粘贴到文件中&#xff1a; echo off taskkill /f /…

【C++】- 类和对象(构造函数!析构函数!拷贝构造函数!详解)

类和对象② 类的6个默认成员函数构造函数析构函数拷贝构造函数 类的6个默认成员函数 上一篇详细介绍了类。如果一个类中什么成员都没有&#xff0c;简称为空类。 那么空类中真的什么都没有吗&#xff1f; 并不是&#xff0c;当类在什么都不写时&#xff0c;编译器会自动生成…

塔罗占卜 api数据接口实现及代码示例

塔罗牌&#xff0c;被称为“大自然的奥秘库”。它是西方古老的占卜工具&#xff0c;中世纪起流行于欧洲&#xff0c;其起源一直是个谜&#xff0c;此接口仅处理多牌阵占卜法&#xff0c;不考虑一张牌占卜的情况。 接口名称&#xff1a;占卜-多牌阵占卜法 接口平台&#xff1a…

[算法与数据结构][python][c++]:C++中的this指针和Python中的Self -- 26岁生日

C中的this指针和Python中的Self 1. python中的Self2. C中的this指针3. C中的this指针和Python中self的异同点&#xff1a; 以朋友的新岁祝福开篇&#xff0c;祝笔者也祝大家☺️&#xff1a; 一岁一礼 一寸欢喜且喜且乐 且以永日​ From VardoZ癸卯年十一月廿六(兔年)之…

SQLServer设置端口,并设置SQLServer和SQLServer Browser服务

SQLServer默认使用动态端口&#xff0c;即每次启动sqlserver.exe时&#xff0c;端口port都会动态变化。若要使用静态端口&#xff0c;比如port1433&#xff0c;则需要在SQL Server Configuration Manager(简称SSMS&#xff09;里配置。这里以SQL Server 2005 Configuration Man…

安科瑞有序充电运营场站落成-安科瑞 蒋静

今年6月&#xff0c;发布了《关于进一步构建高质量充电基础设施体系的指导意见》&#xff0c;提出到2030年基本建成高质量充电基础设施体系&#xff0c;以支撑新能源汽车产业的发展和满足人民群众的出行充电需求。7月底&#xff0c;国家部门印发了《关于促进汽车消费的若干措施…

Elasticsearch(实践2)链接库产生TLS验证安全性报错

问题&#xff1a; File "/home/server/miniconda3/envs/rag/lib/python3.8/site-packages/elastic_transport/_transport.py", line 328, in perform_request meta, raw_data node.perform_request( File "/home/server/miniconda3/envs/rag/lib/python3…