表单验证需先接收数据并判断非空,再依次验证邮箱、手机格式及数据范围,结合正则与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之间的数字。
SuperDesign
开源的UI设计AI智能体
216
查看详情
$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 "<p style='color:red;'>$error</p>";
}
}
}
基本上就这些。掌握这些基础方法后,你可以根据项目需求扩展验证规则,比如添加验证码、文件上传校验等。关键是保持代码清晰、安全优先,避免遗漏关键检查点。
以上就是PHP表单验证怎么写_PHP表单数据验证的常用方法与实例的详细内容,更多请关注php中文网其它相关文章!
# php
# html
# 前端
# 正则表达式
# ai
# sql注入
# php基础语法
# 转换为
# 菏泽线上seo报价多少
# 网站建设光明新区
# 欧美网站建设美丽中国
# 如何在
# 你可以
# 中为
# 编辑器
# 应在
# 不正确
# 为空
# 表单
# lsp
# 表单提交
# 防止sql注入
# 邮箱
# 文章移动端seo
# 建设个人银行网站
# 广州网站推广威新hfqjwl做词
# 昆山营销推广哪家不错
# 网站怎么优化设置方法
# 广州越秀关键词排名
# 娄底全网网站建设平台
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
钉钉任务无法提醒如何处理 钉钉任务提醒优化方法
铁路12306座位怎么选_12306官方选座操作方法
Mac hosts文件在哪里_Mac修改hosts文件详细教程
PPT智能排版生成入口 免费PPT内容自动生成平台
如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】
AffinityDesigner图层蒙版怎么用_AffinityDesigner图层蒙版设计应用
如何测试您的网站全球打开速度-网站海外测速工
微信步数怎么刷_微信步数快速提升技巧
《大周列国志》皇帝律令功能介绍
《火花chat》搜索好友方法
Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】
《360浏览器》自动保存账号密码设置方法
抖音小程序怎么开通?小程序开通条件是什么?
在VS Code中进行数据科学和机器学习开发
包子漫画在线观看入口 包子漫画网正版全集链接
《全民k歌》网页版最新登录入口一览
优化Leaflet弹出层图片显示:条件渲染策略
漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐
Python对象引用与属性赋值:理解链表中的行为
修复UI元素交互障碍:从“开始”按钮到信息框的平滑过渡实现
sublime text 4如何安装_最新版sublime下载与汉化教程
126邮箱申请入口官网_126邮箱注册免费登录2025
驱动人生:游戏修复指南
Pandas中基于动态偏移量实现DataFrame列值位移的策略
《东方财富》条件单关闭方法
12306夜间购票失败? | 查看官方公布的暂停服务公告与应对方案
从J*a应用程序中导出MySQL表数据的技术指南
解决异步Python机器人中同步操作的阻塞问题
mysql数据库索引类型有哪些_mysql索引类型解析
荣耀magicv5怎么上手测评
小红书如何引流到私信?引流到私信有用吗?
J*a中逻辑运算符如何使用_逻辑与或非的基础用法讲解
Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】
Yandex世界探索 最新官方免登录入口全知道
《爱笔思画x》涂色教程
J*aScript桌面应用_Electron多进程架构实战
使用 J*aScript 随机化 CSS Grid 布局中的元素顺序
秋风萧瑟洪波涌起中的萧瑟指的是什么
三角洲行动2025年9月10日摩斯密码分享
c++如何实现观察者设计模式_c++行为型设计模式实战
怎样让Windows 11的开始菜单恢复经典样式_Open-Shell工具使用指南【怀旧】
Python测试中模块导入路径解析的最佳实践
智慧团建活动报名入口 智慧团建活动报名入口手机端官网
使用jQuery精确检测除指定元素外任意位置的点击事件
网站体验不好=浪费钱:如何提升-用户体验效果差
如何在CSS中使用伪类选择器_hover实现悬停效果
AngularJS动态内容中DOM元素查找的时序问题及$timeout解决方案
京东快递包裹信息查询入口 京东快递官方查询平台入口
漫蛙app官方版手机正版入口-漫蛙漫画manwa在线漫画正版入口
Win10共享文件夹设置方法 Win10局域网文件共享全攻略【教程】
2025-11-23
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。