前面我们介绍了 $_POST 和 $_GET 这两个全局变量,它们分别可以用来获取 from 表单通过 POST 或者 GET 方式所提交的数据。在实际开发过程中,我们不知道 form 表单通过哪种方式提交数据时,该怎么办呢?PHP 中提供了一个 $_REQUEST 全局变量,它是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。
也就是说不管是使用 POST 还是使用 GET 方式提交的数据,都可以使用 $_REQUEST 来获取,甚至可以使用 $_REQUEST 来获取 COOKIE 的信息。在 PHP5.3 中引入 request_order 属性,我们可以通过在 php.ini 配置文件中修改 request_order 属性的值,来控制 $_REQUEST 中包含的内容。
request_order 属性的值可以是 G、P 和 C 这三个大写的英文字母,它们分别代表 GET、POST 和 COOKIE。默认情况下 request_order 属性的默认值为 request_order="GP"
,并不包含 C,也就是说 $_REQUEST 中并不包含 COOKIE 的信息,如果我们希望 $_REQUEST 中包含 COOKIE 的话,需要将其修改为request_order="GPC"
。
【示例】使用 $_REQUEST 来接收表单中传递过来的数据。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>C语言中文网</title> </head> <body> <p>------------------------get------------------------</p> <form action="index.php" method="get"> 姓名:<input type="text" name="name" placeholder="请输入姓名"><br> 性别:<input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br> 爱好:<input type="checkbox" name="hobby[]" value="read">阅读 <input type="checkbox" name="hobby[]" value="travel">旅游 <input type="checkbox" name="hobby[]" value="sport">运动 <input type="checkbox" name="hobby[]" value="internet">上网<br> 职业:<select name="job"> <option value="coder">程序员</option> <option value="teacher">教师</option> <option value="doctor">医生</option> <option value="other">其它</option> </select><br> <input type="submit" value="提交">  <input type="reset" value="重置"> </form> <p>------------------------post------------------------</p> <form action="index.php" method="post"> 姓名:<input type="text" name="name" placeholder="请输入姓名"><br> 性别:<input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br> 爱好:<input type="checkbox" name="hobby[]" value="read">阅读 <input type="checkbox" name="hobby[]" value="travel">旅游 <input type="checkbox" name="hobby[]" value="sport">运动 <input type="checkbox" name="hobby[]" value="internet">上网<br> 职业:<select name="job"> <option value="coder">程序员</option> <option value="teacher">教师</option> <option value="doctor">医生</option> <option value="other">其它</option> </select><br> <input type="submit" value="提交">  <input type="reset" value="重置"> </form> </body> </html> <?php if(!empty($_REQUEST)){ echo '提交成功!<br><pre>'; var_dump($_REQUEST); } ?>
运行上面的代码,不论是选择哪种提交方式,使用 $_REQUEST 都可以成功接收到表单传递的信息。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/24090.html