PHP通过$_POST和$_GET接收表单数据,需验证、过滤并防范XSS和CSRF;文件上传需处理$_FILES数组,并使用Token机制防止非法请求。

PHP处理HTML表单数据主要通过接收用户提交的信息,进行验证、过滤和存储。关键在于理解表单的提交方式(GET或POST),以及如何安全地获取和处理这些数据。
获取表单数据
HTML表单通常使用 method="post" 或 method="get" 提交数据。在PHP中分别通过 $_POST 和 $_GET 超全局数组来接收。
例如,一个简单的登录表单:
在 process.php 中接收数据:
立即学习“PHP免费学习笔记(深入)”;
$username = $_POST['username'] ?? '';$password = $_POST['password'] ?? '';
使用 ?? 操作符可避免未定义索引的警告。
数据验证与过滤
直接使用用户输入存在安全风险,必须进行验证和过滤。
- 检查是否为空:empty()
- 过滤字符串:filter_input() 或 htmlspecialchars() 防止XSS
- 验证邮箱:filter_var($email, FILTER_VALIDATE_EMAIL)
示例:
微商城订单管理系统是一款基于php+mysql开发的php订单管理系统,她的特点如下: 产品特色: 支持商品规格、订单短信提醒,订单提交限制,站外调用, 批量发货/导出,数据报表,物流轨迹、免签支付等。 1、高度开源:除核心授权文件外全部开源,二开方便。 2、分布式部署:支持分布式部署、支持数据库读写分离。 3、第三方存储:支持附件腾讯云、阿里云、七牛云存储
$username = htmlspecialchars(trim($username));
}
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// 邮箱格式正确
}
处理文件上传
如果表单包含文件上传,需设置 enctype="multipart/form-data",并通过 $_FILES 数组处理。
在PHP中:
if ($_FILES['avatar']['error'] === UPLOAD_ERR_OK) {$tmp_name = $_FILES['avatar']['tmp_name'];
$name = basename($_FILES['avatar']['name']);
move_uploaded_file($tmp_name, "uploads/" . $name);
}
防止CSRF和重复提交
为提升安全性,建议使用Token机制防止跨站请求伪造(CSRF)。
生成Token:
session_start();$_SESSION['token'] = bin2hex(random_bytes(32));
表单中加入:
提交时验证:
if (!hash_equals($_SESSION['token'], $_POST['token'])) {die('非法请求');
}
基本上就这些。掌握表单数据的接收、过滤、验证和安全防护,就能稳妥处理大多数用户提交场景。不复杂但容易忽略细节,特别是安全方面。










