php表单处理(一):$_GET变量和$_POST变量

2020-06-23  本文已影响0人  烂笔头2020

PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。

PHP $_GET 变量

在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
示例1:
form_get.html

<html>
<head>
<meta charset="utf-8">
<title>php表单get</title>
</head>
<body>

<form action="welcome.php" method="get">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>

</body>
</html>

welcom.php

欢迎 <?php echo $_GET["fname"]; ?>!<br>
你的年龄是 <?php echo $_GET["age"]; ?>  岁。

当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示:

http://localhost/phpfiles/welcome.php?fname=小明&age=22

注意:表单域的名称会自动成为 $_GET 数组中的键

由此可以看出,在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中,所以在发送密码或其他敏感信息时,不应该使用这个方法!然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

PHP $_POST 变量

预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值,从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。
示例2:
form.html 文件代码:

<html>
<head>
<meta charset="utf-8">
<title>php表单</title>
</head>
<body>
 
<form action="welcome.php" method="post">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>
 
</body>

</html>

welcome.php 文件代码:

欢迎<?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>  岁。

当用户点击 "提交" 按钮时,URL 类似如下所示:http://localhost/phpfiles/welcome.php
"welcome.php" 文件现在可以通过 $_POST 变量来收集表单数据了(注意,表单域的名称会自动成为 $_POST 数组中的键)。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的,并且对发送信息的量也没有限制。
然而,由于变量不显示在 URL 中,所以无法把页面加入书签。

PHP $_REQUEST 变量

预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。
$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。
可以修改welcome.php的代码,它可以接受 $_GET、$_POST等数据。

欢迎 <?php echo $_REQUEST["fname"]; ?>!<br>
你的年龄是 <?php echo $_REQUEST["age"]; ?>  岁。

示例3:

<html>
<body>
 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
 
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
 
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读