PHP+MySQL+Ajax实现注册功能

news/2025/2/16 6:07:14/

本文使用原生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.ppmy.cn/news/1300944.html

相关文章

python爬虫实战(9)--获取澎pai热榜

1. 需要的类包 import pandas as pd import requests2. 请求地址 通过分析&#xff0c;数据可以直接从接口获取&#xff0c;无需解析页面标签&#xff0c;直接取出我们需要的数据即可。 def fetch_hot_news(api_url):response requests.get(api_url)if response.status_cod…

应用在LCD显示器电源插头里的氮化镓(GaN)MTC-65W1C

LCD&#xff08;Liquid Crystal Display&#xff09;显示器是利用液晶显示技术来进行图像表现的显示装置&#xff0c;从液晶显示器的结构来看&#xff0c;无论是笔记本电脑还是桌面系统&#xff0c;采用的LCD显示屏都是由不同部分组成的分层结构。LCD显示器按照控制方式不同可分…

植物大战僵尸小游戏抖音快手直播搭建弹幕插件教程

植物大战弹幕插件功能介绍 该插件由梦歌技术部团队支持开发&#xff0c;本插件软件通过监测抖音弹幕信息&#xff0c;获取礼物数据触发脚本插件对应的功能&#xff1b; 功能目前基本上已经完善&#xff0c;后期功能会陆续上线支持更新&#xff0c;全新的脚本监测稳定方便实用…

highlight.js 实现搜索关键词高亮效果 ,显示匹配数量及切换显示功能

先看效果&#xff1a; 更新&#xff1a;增加切换显示 折腾了老半天&#xff0c;记录一下 注意事项都写注释了 代码&#xff1a; <template><div class"absolute-lt wh-full overflow-hidden p-10"><div style"width: 200px"><el-…

【网络安全】Nessus部署自动更新和端口权限开放

文章目录 Nessus 自动更新配置Nessus服务端口开放Nessus profession 版本需要开放端口Sensor ProxyTenable Security Center (TSC)Tenable OT Security (TOT)Tenable OT Security Enterprise Manager (IEM)Tenable OT Security Industrial Core Platform (ICP)Tenable OT Secur…

ES6(一部分)未完...

文章目录 ES61.ES6 let声明变量2.ES6 const声明常量3.变量解构赋值3-1解构对象3-2解构数组3-3字符串解构 4.模板字符串5.字符串扩展5-1 include函数5-2 repeat函数&#xff08;重复&#xff09; 6.数值扩展6-1二进制和八进制表示法6-2isFinite 与 isNaN方法6-3islnteger方法6-4…

算法篇:动态规划I

声明&#xff1a;若未特殊标出&#xff0c;则默认是leedcode原题。 1、1137.第N个泰波那契数列&#xff1a; ①状态表示&#xff1a;dp[i]表示&#xff1a;第i个泰波那契数的值。 ②状态转移方程&#xff1a;以i位置的状态&#xff0c;最近的一步&#xff0c;来划分问题&#…

k8s源码阅读环境配置

源码阅读环境配置 k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理&#xff0c;同时提升我们Go编程能力。 IDE使用Goland&#xff0c;代码阅读环境需要进行如下配置&#xff1a; 从github上下载代码&#xff1a;https://github.com/kubernetes/kubernetes在GOPATH目…