本篇文章给大家介绍一下PHP中接收外部参数的方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
变着花样来接参,PHP中接收外部参数的方式
对于PHP这样一个web语言来说,接参是非常重要的一个能力。毕竟从前端表单或异步请求传递上来的数据都要获取到才能进行正常的交互展示。当然,这也是所有能够进行web开发的语言的必备能力。今天我们就来看看PHP各种各样的接参形式。
首先,我们要准备一个静态页面,就像下面这个一样,它提供了一个表单,同时url里还带有一个GET参数:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="?show=1" method="post"> 姓名:<input type="text" name="name"/><br /> 电话:<input type="text" name="tel"/><br/> 地址(省):<input type="text" name=&quo<div style="color:transparent">来源gaodai.ma#com搞#代!码网</div>t;address.prov"/><br/> 地址(市):<input type="text" name="address city"/><br/> 兴趣1:<input type="text" name="interest[]"/><br/> 兴趣2:<input type="text" name="interest[]"/><br/> 兴趣3:<input type="text" name="interest[]"/><br/> 学历1:<input type="text" name="edu[one]"/><br/> 学历2:<input type="text" name="edu[two]"/><br/> <input type="submit" value="提交" > </form> </body> </html>
正常的$_GET、$_POST方式
// 正常的GET、POST echo $_GET['show'], '<br/>'; // 1 echo $_POST['name'], '<br/>'; // 提交的内容
这是最基础的也是最直接的接参方式,GET参数通过 $_GET 获取,POST参数通过 $_POST 获取,互相都不干扰。
正常的$_REQUEST方式
// 使用REQUEST echo $_REQUEST['show'], '<br/>'; // 1 echo $_REQUEST['tel'], '<br/>'; // 提交的内容
$_REQUEST 则是获取所有请求中的参数,不包括上传文件。也就是说,它包含了 $_GET 、 $_POST 以及 $_COOKIE(需要配置,默认不包含) 这三个接参变量中的所有内容。这里需要注意的一点是,PHP5.3以后, $_REQUEST 接受的参数变量内容由 php.ini 文件中的 request_order 指定,默认情况下这个配置参数的值是 GP 也就是 GET 和 POST ,并没有 COOKIE ,想要 COOKIE 的话需要修改这里添加一个C就可以了。
如果 $_GET 、 $_POST 中有同名的内容呢? $_REQUEST 展示的顺序也是根据这配置参数的顺序来的,从左至右,后面的覆盖前面的,比如你配置的是GP 那么参数覆盖的顺序是: POST > GET,最终显示的就是 POST 中的内容。
register_globals问题
// register_globals 如果打开 echo $name, '<br/>'; // 提交的内容 echo $tel, '<br/>'; // 提交的内容
这是一个不安全的配置,也是在 php.ini 文件中进行配置的。它的作用就是将请求来的参数直接转成变量,有全局变量污染的问题,不要打开!!!现在的 php.ini 文件中基本都是默认关闭的。
import_request_variables
// import_request_variables 抱歉,5.4之后已经取消了 import_request_variables('pg', 'pg_'); echo $pg_show, '<br/>'; echo $pg_name, '<br/>';