表单验证需先接收数据并判断非空,再依次验证邮箱、手机格式及数据范围,结合正则与filter_var函数,最后通过htmlspecialchars和PDO预处理防御XSS与SQL注入,确保数据安全完整。
表单验证是Web开发中非常关键的一环,PHP作为服务器端语言,常用于处理表单数据并进行安全校验。合理的表单验证能防止恶意输入、提升用户体验,并保障数据的完整性与安全性。下面介绍几种常用的PHP
表单验证方法,并附上实用示例。
在处理表单前,首先要确保数据已提交,并对关键字段进行非空判断。
说明: 使用 $_POST 或 $_GET 接收数据,通过 empty() 函数判断是否为空。
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name']);
$email = trim($_POST['email']);
if (empty($name)) {
echo "姓名不能为空";
} elseif (empty($email)) {
echo "邮箱不能为空";
} else {
// 继续后续验证或处理
}
}
使用PHP内置函数 filter_var() 可快速验证邮箱格式是否合法。
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "邮箱格式不正确";
}
提示: 虽然该方法能验证基本格式,但不能确认邮箱是否真实存在,仅用于前端初步过滤。
中国手机号通常为11位,以1开头,第二位为3-9之间的数字。
$phone = $_POST['phone'];
if (!preg_match('/^1[3-9]\d{9}$/', $phone)) {
echo "手机号码格式不正确";
}
注意: 不同国家规则不同,应根据实际业务调整正则表达式。
限制用户名长度、年龄范围等常见需求可通过字符串函数和数值比较实现。
// 用户名长度 2-20 个字符
if (strlen($name) < 2 || strlen($name) > 20) {
echo "用户名长度应在2到20之间";
}
// 年龄应在 1-120 之间
$age = (int)$_POST['age'];
if ($age < 1 || $age > 120) {
echo "请输入有效的年龄";
}
用户输入不可信,必须进行过滤和转义。
$name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
// PDO预处理示例
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute([$name, $email]);
将上述方法整合成一个完整的表单处理流程:
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$phone = trim($_POST['phone']);
$age = (int)$_POST['age'];
if (empty($name)) $errors[] = "姓名不能为空";
elseif (strlen($name) < 2 || strlen($name) > 20) $errors[] = "用户名长度错误";
if (empty($email)) {
$errors[] = "邮箱不能为空";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "邮箱格式不正确";
}
if (!preg_match('/^1[3-9]\d{9}$/', $phone)) {
$errors[] = "手机号格式错误";
}
if ($age < 1 || $age > 120) {
$errors[] = "年龄必须在1-120之间";
}
if (empty($errors)) {
// 数据有效,执行保存操作
echo "表单提交成功!";
} else {
foreach ($errors as $error) {
echo "$error
";
}
}
}
基本上就这些。掌握这些基础方法后,你可以根据项目需求扩展验证规则,比如添加验证码、文件上传校验等。关键是保持代码清晰、安全优先,避免遗漏关键检查点。
# php
# html
# 前端
# 正则表达式
# ai
# sql注入
# 邮箱
# 防止sql注入
# 表单提交
# lsp
# sql
# xss
# 表单验证
# filter_var
# pdo
# 字符串
# 表单
# 为空
# 不正确
# 应在
# 你可以
# 请输入
# 几种
# 并对
# 可通过
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
如何在Golang中写入XML文件_生成符合规范的XML数据
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
Win11怎么设置虚拟键盘_打开Win11屏幕键盘操作指南【技巧】
Win11怎么用设置清理回收站_Win11设置清理回收站技巧【步骤】
Win11怎么查看显卡显存_查询Win11显卡详细参数方法【步骤】
如何在JavaScript中动态拼接PHP的base_url与前端变量
Win11怎么退出高对比度模式_Win11取消反色显示快捷键【修复】
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】
C++如何使用std::optional?(处理可选值)
c++怎么使用std::filesystem遍历文件夹_c++ 递归查找文件与权限修改【技巧】
LINUX下如何配置VLAN虚拟局域网_在LINUX交换机与服务器上的实现
Win11怎么调整屏幕亮度_Windows 11调节显示器亮度护眼设置【步骤】
Python文件和流处理指南_高效读写大体积数据文件
Win11资源管理器卡顿怎么办 Win11文件资源管理器重启技巧【优化】
c++ stringstream用法详解_c++字符串与数字转换利器
Python与MongoDB NoSQL开发实战_文档模型与索引优化
新手学PHP架构总混淆概念咋办_重点梳理【教程】
如何在Golang中配置代码格式化工具_使用gofmt和goimports
如何使用Golang实现容器健康检查_监控和自动重启
c++的STL算法库find怎么用 在容器中查找指定元素【实用教程】
Windows7怎么找回经典开始菜单_Windows7经典菜单找回步骤【方法】
如何使用Golang管理跨项目依赖_Golang多模块项目依赖实践
Windows蓝屏错误0x0000002C怎么解决_系统IO异常排查方法
Win11怎么设置任务栏大小_Windows11注册表修改TaskbarSi值
如何使用Golang管理模块版本_Golanggo mod tidy与升级方法
MAC怎么用连续互通相机里的“桌上视角”_MAC在视频通话中同时展示人脸和桌面
微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】
如何在 Go 中可靠地测试含 time.Time 字段的结构体
php485返回数据不完整怎么办_php485数据分包重组处理方法【教程】
Python安全爬虫设计_IP代理池与验证码识别策略解析
Python函数缓存机制_lru_cache解析【指导】
Win11怎么更改电脑名称_Windows 11修改计算机名操作指南【步骤】
C#怎么创建控制台应用 C# Console App项目创建方法
Win11怎么清理C盘下载文件夹_Win11清理下载文件夹技巧【教程】
Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】
如何从 Go 的 map[string]interface{} 中安全获取值
Win11开机速度慢怎么优化_Win11系统启动加速设置指南【方法】
Win10系统怎么查看显卡温度_Win10任务管理器GPU温度
Win11怎么看电池循环次数_Win11笔记本电池寿命检测【命令】
Win11怎么设置按流量计费_Win11限制后台流量消耗【网络】
Win11怎么设置触控板手势_Windows11三指四指操作自定义
PHP怎么接收前端传的时间戳_处理时间戳参数转换技巧汇总【指南】
如何在 Go 中正确测试带 Cookie 的 HTTP 请求
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
跨文件调用类方法怎么用_php作用域操作符与自动加载配合【介绍】
如何在Golang中捕获JSON序列化错误_Golangjson.Marshal错误处理示例
Django密码修改后会话失效的解决方案
Win11如何设置自动关机 Win11定时关机命令使用教程【技巧】
Win11怎么设置默认浏览器Chrome_Windows11修改默认网页打开方式
2025-11-23
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。