在PHP开发中,获取表单文本框的输入是最基础也最常用的功能,不管是用户登录、信息提交还是数据录入场景,都需要用到这项技术。实现这个功能需要前端表单和后端PHP代码配合完成,核心是通过表单的提交方式将文本框的值传递到服务器,再由PHP接收处理。

前端表单的搭建
首先需要在HTML中创建一个包含文本框的表单,表单的核心属性是method和action。method指定数据提交的方式,常用的是POST和GET两种;action指定表单提交后数据要发送到的PHP文件路径,如果不填则默认提交到当前页面。
文本框需要使用<input>标签,类型为text,同时必须设置name属性,因为PHP就是通过这个name属性的值来识别对应的文本框数据的。
下面是一个简单的表单示例,包含一个用户名文本框和提交按钮:
<form method="post" action="receive.php">
<label>用户名:</label>
<input type="text" name="username" placeholder="请输入用户名">
<input type="submit" value="提交">
</form>
PHP接收文本框数据的方法
使用POST方式接收
如果表单的method设置为post,那么文本框的数据会包含在HTTP请求的正文里,PHP可以通过全局数组$_POST来获取,数组的键就是文本框的name属性值。
下面是receive.php的代码,用于接收上面表单提交的用户名:
<?php
// 判断是否有POST提交的数据
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 获取name为username的文本框的值
$username = $_POST['username'];
// 输出获取到的内容
echo "你输入的用户名是:" . $username;
}
?>
使用GET方式接收
如果表单的method设置为get,文本框的数据会拼接在提交的URL后面,PHP可以通过全局数组$_GET来获取,同样以文本框的name属性值作为键。
修改表单的method为get,提交后URL会变成类似receive.php?username=输入的内容的格式,对应的接收代码为:
<?php
// 判断是否有GET参数
if (isset($_GET['username'])) {
// 获取name为username的文本框的值
$username = $_GET['username'];
// 输出获取到的内容
echo "你输入的用户名是:" . $username;
}
?>
两种提交方式的区别
POST和GET是两种常用的表单提交方式,它们的区别如下:
| 对比项 | POST方式 | GET方式 |
|---|---|---|
| 数据位置 | HTTP请求正文 | URL参数 |
| 数据长度限制 | 无明确限制 | 受URL长度限制,通常较短 |
| 安全性 | 相对较高,数据不会显示在URL中 | 较低,数据会暴露在URL中 |
| 适用场景 | 提交敏感数据、大数据量提交 | 查询类操作、数据量小的场景 |
注意事项
- 获取文本框数据前最好先判断对应的数组键是否存在,避免出现未定义索引的错误,可以使用
isset()函数判断。 - 直接获取到的用户输入可能包含恶意代码,如果后续要输出到页面,建议使用
htmlspecialchars()函数转义,防止XSS攻击。 - 文本框的name属性值不要包含特殊字符,尽量使用英文和下划线,避免出现PHP无法正确识别的情况。
如果是简单的测试场景,也可以把表单和PHP接收代码写在同一个文件里,通过判断请求方式来区分是展示表单还是处理提交的数据,示例代码如下:
<?php
// 处理POST提交的数据
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['username'])) {
$username = $_POST['username'];
echo "你输入的用户名是:" . htmlspecialchars($username);
}
}
?>
<!-- 展示表单 -->
<form method="post" action="">
<label>用户名:</label>
<input type="text" name="username" placeholder="请输入用户名">
<input type="submit" value="提交">
</form>