最新的Web开发教程
 

PHP 5表单处理


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>
运行示例»

当用户填写表单上面并点击提交按钮,表单数据进行处理发送给名为PHP文件"welcome.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方法实现:

<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( key => value, key2 => value2, key3 => value3, ...) 这个数组保存键/值对,其中键是表单控件的名称和值是来自用户的输入数据。

GET和POST被视为$ _GET和$ _POST。 这些都是超全局变量,这意味着它们始终可以访问,无论范围 - 你可以从任何函数,类或文件的访问,而不必做任何特殊。

$ _GET是通过URL参数传递给当前脚本的变量数组。

$ _POST是经由HTTP POST方法传递给当前脚本变量的阵列。


当使用GET?

从与GET方法的表单发送的信息的人都能看到 (所有的变量名和值在URL中显示)。 GET也对信息量的限制发送。 该限制是大约2000个字符。 但是,因为变量显示在URL中,有可能书签页面。 这可能是在某些情况下是有用的。

GET可用于发送非敏感数据。

Note: GET不应该被用来发送密码或其他敏感信息!


当使用POST?

从与POST方法的形式发送的信息是不可见的, (all names/values are embedded within the body of the HTTP request) ,并具有上的信息的量没有限制发送。

此外POST支持先进的功能,例如用于多部分二进制输入支撑,同时将文件上传到服务器。

但是,由于变量没有在URL中显示,这是不可能的书签页面。

开发人员喜欢POST发送表单数据。

接下来,让我们看看我们如何能够处理PHP形式的安全的方式!