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 文件进行处理。

要显示提交的数据,您可以简单地输出所有变量。

"welcome.php" 文件看起来像这样:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

输出可能如下所示:

Welcome Bill
Your email address is bill.gates@example.com

使用 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 表单!