答案:PHP通过$_POST和$_GET获取表单数据,分别对应post和get提交方式;需用htmlspecialchars过滤输出,结合filter_input验证输入,防止XSS和SQL注入,并用null合并运算符避免未定义索引错误。

在PHP中获取表单数据主要通过超全局数组 $_GET 和 $_POST 来实现,具体使用哪个取决于表单的提交方式。下面详细介绍如何接收和处理PHP表单提交的数据。
1. 使用 $_POST 接收表单数据
当表单的 method 属性设置为 "post" 时,应使用 $_POST 数组来获取数据。这种方式更安全,适合传递敏感信息或大量数据。示例HTML表单:
在 process.php 中接收数据:
$username = $_POST['username'] ?? '';
$email = $_POST['email'] ?? '';
if (!empty($username)) {
echo "用户名:" . htmlspecialchars($username) . "
";
}
if (!empty($email)) {
echo "邮箱:" . htmlspecialchars($email);
}
2. 使用 $_GET 接收表单数据
当表单 method 设置为 "get" 时,数据会附加在URL后,使用 $_GET 获取。适用于非敏感、可缓存的操作(如搜索)。示例:
立即学习“PHP免费学习笔记(深入)”;
在 search.php 中处理:
$keyword = $_GET['keyword'] ?? '';
if ($keyword) {
echo "您搜索的是:" . htmlspecialchars($keyword);
}
3. 表单数据的安全处理建议
直接输出用户输入存在安全风险,应进行适当过滤和验证。- 过滤输入:使用 filter_input 或 filter_var 对数据进行过滤,如验证邮箱格式。
- 转义输出:用 htmlspecialchars() 防止HTML注入。
- 避免SQL注入:不要拼接SQL语句,推荐使用PDO预处理语句。
- 检查字段是否存在:使用 isset() 或 null合并运算符 ?? 避免未定义索引错误。
4. 处理复选框和多选数据
当表单包含多个同名字段(如复选框),需在表单name属性后加 [],PHP会将其解析为数组。示例:
立即学习“PHP免费学习笔记(深入)”;
读书
运动
接收代码:
$hobbies = $_POST['hobby'] ?? [];
foreach ($hobbies as $hobby) {
echo htmlspecialchars($hobby) . " ";
}











