PHP 表单处理
PHP 超全局变量 $_GET
和 $_POST
用于收集表单数据。
PHP - 一个简单的 HTML 表单
下面的例子展示了一个简单的 HTML 表单,包含两个输入字段和一个提交按钮
示例
<html>
<body>
<form action="welcome.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
运行示例 »
当用户填写完上面的表单并点击提交按钮时,表单数据将通过 HTTP POST 方法发送到名为 "welcome.php" 的 PHP 文件进行处理。
要显示提交的数据,您可以简单地 echo 所有变量。
"welcome.php" 文件内容如下
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
输出可能如下
Welcome John
Your email address is john.doe@example.com
使用 HTTP GET 方法也可以达到相同的结果
示例
相同的例子,但 method 设置为 GET 而不是 POST
<html>
<body>
<form action="welcome_get.php" method="GET">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
运行示例 »
"welcome_get.php" 文件内容如下
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
上面的代码非常简单,不包含任何验证。
您需要验证表单数据以保护您的脚本免受恶意代码的侵害。
处理 PHP 表单时请考虑安全性!
此页面不包含任何表单验证,仅展示如何发送和检索表单数据。
但是,接下来的页面将展示如何以安全的方式处理 PHP 表单!正确验证表单数据对于保护您的表单免受黑客和垃圾邮件发送者的侵害非常重要!
GET 与 POST
GET 和 POST 都会创建一个数组(例如:array( key1 => value1, key2 => value2, key3 => value3, ...))。该数组包含键值对,其中键是表单控件的名称,值是用户输入的数据。
GET 和 POST 都被处理为 $_GET 和 $_POST。它们是超全局变量,这意味着它们始终可访问,无论作用域如何——您可以从任何函数、类或文件中访问它们,而无需进行任何特殊操作。
$_GET 是一个变量数组,通过 URL 参数传递给当前脚本。
$_POST 是一个变量数组,通过 HTTP POST 方法传递给当前脚本。
何时使用 GET?
使用 GET 方法从表单发送的信息**对所有人可见**(所有变量名和值都会显示在 URL 中)。GET 对发送信息量也有限制。限制约为 2000 个字符。然而,由于变量显示在 URL 中,因此可以收藏该页面。这在某些情况下可能很有用。
GET 可用于发送非敏感数据。
注意: GET 绝不应用于发送密码或其他敏感信息!
何时使用 POST?
使用 POST 方法从表单发送的信息**对他人不可见**(所有名称/值都嵌入在 HTTP 请求的正文中),并且对发送信息量**没有限制**。
此外,POST 支持高级功能,例如支持在将文件上传到服务器时进行多部分二进制输入。
然而,由于变量不显示在 URL 中,因此无法收藏该页面。
开发人员更倾向于使用 POST 来发送表单数据。
接下来,让我们看看如何安全地处理 PHP 表单!