ThinkPHP框架表单验证操作方法
发布时间 - 2026-01-11 02:25:15 点击率:次自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。分为静态验证和动态验证。

一、静态验证
(1)在Home/Controller/路径下新建Index控制器。IndexController
IndexController.class.php页面
注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型
create方法是对表单提交的POST数据进行自动验证
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function yanzheng(){
$u= D("users");//造一个子类对象
if(empty($_POST)){
$this->show();
}else{
if($u->create()){//验证
echo"验证通过";
}else{
echo $u->getError();//获取错误信息
}
}
}
}
(2)在view/Index文件夹下做yanzheng.html页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script> </head> <body> <h1>验证界面</h1> <form action="__ACTION__" method="post"> <div>用户名:<input type="text" name="uid" /></div> <div>密码:<input type="password" name="pwd1"/></div> <div>确认密码:<input type="password" name="pwd2"/></div> <div>年龄:<input type="text" name="age"/></div> <div>邮箱:<input type="text" name="Email"/></div> <div><input type="submit" value="验证" /></div> </form> </body> </html>
效果图:
(3)在Model层写静态验证的验证:(路径如图)
UsersModel.class.php
<?php
namespace Home\Model;
use Think\Model;
class UsersModel extends Model{
//添加验证条件
protected $_validate = array(
array("uid","require","用户名不能为空!"), //默认情况下用正则进行验证
array("pwd1","require","密码不能为空!"),
array("pwd2","require","密码不能为空!"),
array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"), // 验证确认密码是否和密码一致
array("age","18,50","年龄不在范围内",0,"between"),
array("Email","email","邮箱格式不正确"),
);
}
依次验证效果图:
当全部为空时,点击验证
会跳转
输入用户名,其他不输入时,会跳转
两次密码输入不一致时,会提示;年龄不在范围内会提示;邮箱格式不正确时会提示;
输入正确格式内容后
二、动态验证
(1) IndexController.class.php页面
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function yz(){
$u= M("users");//造一个父类对象
if(empty($_POST)){
$this->show();
}else{
$rules = array(
array("uid","require","用户名不能为空!"),
);
if($u->validate($rules)->create()){//验证
$this->ajaxReturn("ok","eval");
}else{
$this->ajaxReturn("no","eval");
}
}
}
}
(2) yz.html页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h1>验证界面</h1>
<form action="__ACTION__" method="post">
<div><input type="text" name="uid" id="uid" /><span id="ts"></span></div>
<div><input type="submit" value="验证" /></div>
</form>
</body>
<script type="text/javascript">
$("#uid").blur(function(){
var uid = $(this).val();
$.ajax({
url:"__ACTION__",
data:{uid:uid},
type:"POST",
dataType:"TEXT",
success: function(data){
if(data.trim()=="ok")
{
$("#ts").html("验证通过");
}
else
{
$("#ts").html("用户名不能为空");
}
}
});
})
</script>
</html>
看一下效果:
当文本框失去焦点时:
当文本框有内容时,再失去焦点:
以上所述是小编给大家介绍的ThinkPHP框架表单验证操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# tp框架
# 表单验证
# ThinkPHP框架安全实现分析
# thinkphp微信开之安全模式消息加密解密不成功的解决办法
# thinkphp5.1框架容器与依赖注入实例分析
# 对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
# ThinkPHP表单自动提交验证实例教程
# thinkPHP实现表单自动验证
# ThinkPHP表单自动验证实例
# Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
# 关于ThinkPhp 框架表单验证及ajax验证问题
# ThinkPHP 表单自动验证运用示例
# thinkPHP自动验证、自动添加及表单错误问题分析
# ThinkPHP中create()方法自动验证表单信息
# TP5框架安全机制实例分析
# 为空
# 两次
# 跳转
# 表单
# 不正确
# 小编
# 无标题文档
# 文本框
# 子类
# 在此
# 他不
# 给大家
# 如图
# 看一下
# 输入用户名
# 错误信息
# 只能用
# 所述
# 给我留言
# 感谢大家
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel用户密码怎么加密_Laravel Hash门面使用教程
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
手机软键盘弹出时影响布局的解决方法
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何快速辨别茅台真假?关键步骤解析
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
公司网站制作价格怎么算,公司办个官网需要多少钱?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Android滚轮选择时间控件使用详解
如何正确下载安装西数主机建站助手?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
如何确保西部建站助手FTP传输的安全性?
如何快速搭建FTP站点实现文件共享?
如何获取上海专业网站定制建站电话?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
使用C语言编写圣诞表白程序
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
在线制作视频的网站有哪些,电脑如何制作视频短片?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何实现用户密码重置功能?(完整流程代码)
焦点电影公司作品,电影焦点结局是什么?
动图在线制作网站有哪些,滑动动图图集怎么做?
制作公司内部网站有哪些,内网如何建网站?
利用python获取某年中每个月的第一天和最后一天
使用Dockerfile构建java web环境
python中快速进行多个字符替换的方法小结
php json中文编码为null的解决办法
浅谈redis在项目中的应用
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
网站页面设计需要考虑到这些问题
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
如何快速生成专业多端适配建站电话?

