PHP通过GET和POST方法接收表单数据,GET将数据附加在URL后,适合非敏感信息;2. POST将数据封装在请求体中,更安全且无长度限制,适用于敏感或大量数据;3. 无论哪种方法都需过滤验证数据,使用htmlspecialchars、filter_var和预处理语句防范XSS和SQL注入等安全风险。

在PHP中接收表单数据主要依赖于HTML表单的提交方法,最常用的是 GET 和 POST 两种方式。它们各有特点,适用于不同场景。
使用GET方法接收表单数据
当HTML表单的 method 属性设置为 "get" 时,表单数据会附加在URL后面,通过查询字符串(query string)传递给PHP脚本。
示例HTML表单:
在 handle.php 中接收数据:
立即学习“PHP免费学习笔记(深入)”;
if (isset($_GET['username'])) {$username = $_GET['username'];
$age = $_GET['age'];
echo "你好,$username,你 $age 岁。";
}
?>
注意: 使用GET方法时,数据会显示在URL中,不适合传输敏感信息(如密码),且有长度限制,一般不超过2048个字符。
使用POST方法接收表单数据
当表单 method 设置为 "post" 时,数据不会显示在URL中,而是封装在HTTP请求体中发送,更适合处理敏感或大量数据。
示例HTML表单:
在 process.php 中接收数据:
if ($_POST) {$user = $_POST['user'];
$pwd = $_POST['pwd'];
echo "用户 $user 提交了登录请求。";
// 实际项目中应进行密码验证等安全处理
}
?>
优点: POST 方法更安全,可传输更多数据,不会被浏览器缓存,也不易被记录在服务器日志中。
安全建议与数据过滤
无论使用GET还是POST,都应对接收的数据进行过滤和验证,防止XSS、SQL注入等攻击。
常用处理方式:
- 使用 htmlspecialchars() 转义特殊字符,防止XSS
- 使用 filter_var() 进行数据类型验证
- 避免直接将用户输入拼接到SQL语句中,推荐使用预处理语句(PDO或MySQLi)
例如对用户名进行基础过滤:
$username = htmlspecialchars(trim($_POST['user'])); 基本上就这些。根据实际需求选择合适的方法,并始终重视数据安全。











