【PHP【实战版】系统性学习】——登录注册页面的教程,让编写PHP注册变成一个简单的事情

本文主要是介绍【PHP【实战版】系统性学习】——登录注册页面的教程,让编写PHP注册变成一个简单的事情,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:PHP程序开发

🅰

请添加图片描述


文章目录

    • 🅰
    • 前言
    • 🎶一、AJAX表单验证
    • 🎶二、手机与邮箱验证
    • 🎶三、将数据写入数据库
    • 🎶(4)模型的查询修改删除操作
        • 结束语🥇


前言

  在Web开发中,表单是用户与网站进行交互的主要方式之一。然而,用户提交的表单数据需要经过验证,以确保数据的完整性、安全性和合法性。PHP作为一种强大的服务器端脚本语言,提供了丰富的工具和函数来实现表单验证。
本文将介绍如何使用PHP对表单数据进行验证,包括验证必填字段、验证邮箱、验证密码、验证数字等常见场景。我们将探讨各种验证技术和最佳实践,以确保您的表单在用户提交之前可以正确验证并返回友好的错误提示信息。
  通过本文的学习,您将掌握PHP表单验证的基础知识,并能够应用这些知识来构建安全可靠的Web应用程序。无论您是初学者还是有一定经验的开发人员,本文都将为您提供有关PHP表单验证的全面指南,帮助您提升Web开发的技能水平。


🎶一、AJAX表单验证


  使用WeUI前端UI框架对其项目进行编写,在UI框架中找到一个合适的登录页面,并进行重新的命名。因为表单提交将会进行页面跳转,因此修改表单提交的方式,改为按钮的提交方式。
给手机输入框和邮箱输入框添加oninput事件,oninput事件在输入框的值发展改变时触发。在手机输入框和邮箱输入框中插入错误提示标签,当输入的手机和邮箱不符合规定时,给出相应的提示,让注册用户立即进行修改,提供用户的体验感。

(1)AJAX表单验证代码展示

<!DOCTYPE html>
<html><head><meta charset="utf-8"><!-- 让网页的宽度自动适应手机屏幕的宽度 --><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0"><title>用户注册</title><!-- 引入 本地 css文件 --><link rel="stylesheet" href="css/weui.css"/><link rel="stylesheet" href="jquery-confirm/jquery-confirm.css"/><!-- 引入本地js文件 --><script src="js/jquery-3.6.1.min.js"></script><script src="jquery-confirm/jquery-confirm.js"></script></head><body><form class="weui-form" id="reg_form"><div class="weui-form__text-area"><h2 class="weui-form__title">用户注册</h2></div><div class="weui-form__control-area"><div class="weui-cells__group weui-cells__group_form"><div class="weui-cells"><label class="weui-cell"><div class="weui-cell__hd"><span class="weui-label">手机</span></div><div class="weui-cell__bd"><input class="weui-input" name="tel" placeholder="填写本人手机号" oninput="change('tel')"/></div></label><div class="cells__tips" id="tel_tip"style="padding-left:16px;color:red;font-size:12px" >请输入11位手机号码</div><label class="weui-cell"><div class="weui-cell__hd"><span class="weui-label">邮箱</span></div><div class="weui-cell__bd"><input class="weui-input" name="email" placeholder="填写本人邮箱"  oninput="change('email')"/></div></label><div class="c                                                                ells__tips" id="email_tip"style="padding-left:16px;color:red;font-size:12px" >请输入正确的邮箱格式</div><label class="weui-cell"><div class="weui-cell__hd"><span class="weui-label">姓名</span></div><div class="weui-cell__bd"><input class="weui-input" name="name" placeholder="填写本人姓名" /></div></label><label class="weui-cell"><div class="weui-cell__hd"><span class="weui-label">密码</span></div><div class="weui-cell__bd"><input class="weui-input" name="password" placeholder="填写六位密码" type="password" /></div></label><label class="weui-cell"><div class="weui-cell__hd"><span class="weui-label">确认密码</span></div><div class="weui-cell__bd"><input class="weui-input" name="repassword" placeholder="请再次输入六位密码"  type="password" /></div></label></div></div></div><div class="weui-form__tips-area"></div> <!-- 表单提示 --><div class="weui-form__opr-area"><button type="button" class="weui-btn weui-btn_primary" onclick="reg()">立即注册</button></div></form><script>// 通过进行验证function change(type){if(type=='tel'){//进行号码验证var tel=$('#reg_form input[name=tel]').val();if(tel.length==11){//去数据库中进行验证,该验证号码是否存在(异步提交,通过ajax来进行数据库查询,并且获得返回值)$.get("chackTel.php",//URL,表单内容的目的地{'tel':tel},//参数function(res) {//回调函数,提交表单后的结果var obj=$.parseJSON(res);//将结果进行转换$("#tel_tip").html(obj.msg);}   );}}else if(type=='email'){//进行邮箱验证var email=$('#reg_form input[name=email]').val();var index1=email.indexOf('@');var index2=email.indexOf('.');if(index1>=2&&index2>index1+1){$.get("chackTel.php",{'email':email},//参数function(res) {//回调函数,提交表单后的结果var obj=$.parseJSON(res);//将结果进行转换$("#email_tip").html(obj.msg);}  );}else{$('#email_tip').html('请输入正确的邮箱格式');}}}</script></body>
</html>

运行的效果图如下:
在这里插入图片描述


🎶二、手机与邮箱验证


  手机和邮箱验证输入框只要满足JavaScript的验证,就会发生AJAX GET请求,同时将手机和邮箱输入框中的值发送到指定chackTel.php文件,此文件主要获取手机号或邮箱,然后与数据库进行交互,判断是否电话或邮箱被注册,并将返回的结果返回给前端调用页面register.php,前端页面获取返回的数据进行转换,并将结果显示在提示中。
(2)手机和邮箱验证的代码如下:

<?php 
// 接收我们的注册页面,将电话号码到数据库进行验证
$conn=mysqli_connect("localhost","root","123456","shop");
$obj=array("success"=>false,"msg"=>"验证失败");//用户存放处理结果
if(isset($_GET['tel'])){$tel=$_GET['tel'];$sql="select * from users where tel='$tel'";$rs=mysqli_query($conn,$sql);//执行sql文并获取返回结果$rows=mysqli_num_rows($rs);//将结果集转换为行数if($rows>0){$obj=array("success"=>false,"msg"=>"该电话号码已经注册");}else{$obj=array("success"=>true,"msg"=>" ");}//处理结果的返回echo json_encode($obj);
}else if(isset($_GET['email']))
{$email=$_GET['email'];$sql="select * from users where email='$email'";$rs=mysqli_query($conn,$sql);//执行sql文并获取返回结果if(mysqli_num_rows($rs)!=0){$obj=array("success"=>false,"msg"=>"存在相同的邮箱");}else{$obj=array("success"=>true,"msg"=>" ");}//处理结果的返回echo json_encode($obj);
}
?>

运行效果图如下:
在这里插入图片描述



🎶三、将数据写入数据库


  将注册用户填写的信息通过AJAX POST提交到指定的PHP文件,PHP文件获取POST中的数据,并使用数据生成一条MySQL 增加语句,执行增加语句后,返回JSON数据给前端页面,前端首页根据返回的数据弹出提示消息。
首先,在register.php中添加一个reg方法,此方法在注册按钮中进行了绑定。reg方法使用了AJAX POST方法提交注册信息,需要注意的是,确实密码可以在JavaScript中进行验证,因此提交到后台PHP中只需一个密码即可。

(3)增加提交方法reg

<script>// 通过进行验证function change(type){if(type=='tel'){//进行号码验证var tel=$('#reg_form input[name=tel]').val();if(tel.length==11){//去数据库中进行验证,该验证号码是否存在(异步提交,通过ajax来进行数据库查询,并且获得返回值)$.get("chackTel.php",//URL,表单内容的目的地{'tel':tel},//参数function(res) {//回调函数,提交表单后的结果var obj=$.parseJSON(res);//将结果进行转换$("#tel_tip").html(obj.msg);}   );}}else if(type=='email'){//进行邮箱验证var email=$('#reg_form input[name=email]').val();var index1=email.indexOf('@');var index2=email.indexOf('.');if(index1>=2&&index2>index1+1){$.get("chackTel.php",{'email':email},//参数function(res) {//回调函数,提交表单后的结果var obj=$.parseJSON(res);//将结果进行转换$("#email_tip").html(obj.msg);}  );}else{$('#email_tip').html('请输入正确的邮箱格式');}}}function reg(){//提交注册的方法//获取表单的全部内容var tel=$('#reg_form input[name=tel]').val();var email=$('#reg_form input[name=email]').val();var name=$('#reg_form input[name=name]').val();var pwd=$('#reg_form input[name=password]').val();$.post("register_ok.php",{"name":name,"tel":tel,"email":email,"pwd":pwd},function(res){var obj=$.parseJSON(res);if(obj.success){//注册成功$.confirm({title:'注册提示',content:obj.msg,buttons:{"确认":function(){// $.alert("模拟的登录页面的跳转");window.location='del.php';}}});}});}</script>

(4)注册接口

<?php
//接收注册页面中表单的全部内容,插入到数据库中,完成整个注册功能
$conn=mysqli_connect("localhost","root","123456","shop");
$obj=array("success"=>false,"msg"=>"注册失败,请重试");//用户存放处理结果//取得全部数据
$data=$_POST;
$name=$data['name'];
$tel=$data['tel'];
$email=$data['email'];
$pwd=$data['pwd'];
$md5=md5($pwd);
$sql="insert into users(name,tel,email,pwd) values('$name','$tel','$email','$md5')";
$rs=mysqli_query($conn,$sql);
if($rs){$obj=array("success"=>true,"msg"=>"注册成功");
}
echo json_encode($obj);
?>

运行效果图如下:
在这里插入图片描述

🎶(4)模型的查询修改删除操作

结束语🥇

以上就是PHP程序设计
持续更新PHP程序设计教程,欢迎大家订阅系列专栏🔥PHP程序开发你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

这篇关于【PHP【实战版】系统性学习】——登录注册页面的教程,让编写PHP注册变成一个简单的事情的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982557

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder