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>
运行示例 »
当用户填写上述表单并点击提交按钮时,表单数据将发送到名为 “welcome.php” 的 PHP 文件进行处理。表单数据将使用 HTTP POST 方法发送。
要显示提交的数据,你可以简单地回显所有变量。
“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 [email protected]
相同的结果也可以使用 HTTP GET 方法实现
示例
相同的示例,但方法设置为 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 表单!