例如,如果我想使用代码:
$foo = $_POST['foo']. $_GET['foo'];
获取一个值是否通过POST或GET传递,这是可接受还是不好的做法?
答案 0 :(得分:2)
虽然您可以使用$_REQUEST['foo']
,但您的答案中没有任何内容可以使用,因为$_POST
以及$_GET
,但您的代码将会再次考虑肮脏,比如说我调整了method
值,对于登录表单,用户可以轻松攻击你的网站......
明智的是,使用$_GET[]
和$_POST[]
而不是使用宽松的$_REQUEST[]
如果有任何方法,您使用的是$_REQUEST
,请确保您使用条件来检查请求是GET
还是POST
使用$_SERVER['REQUEST_METHOD']
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
//Do something
}
答案 1 :(得分:1)
我会选择:
$foo = isset($_REQUEST['foo']) ? $_REQUEST['foo'] : null;
更多信息:http://php.net/manual/pt_BR/reserved.variables.request.php
答案 2 :(得分:0)
获取POS或GET passeb是否使用此值
$foo = $_REQUEST['foo'];
答案 3 :(得分:0)
如果您将开发服务器PHP配置为抛出所有警告,您将找到。
答案 4 :(得分:0)
答案 5 :(得分:0)
是的,太可怕了。有两个问题:
如果您想从$_POST
或$_GET
获取密钥,并且您不关心密钥是哪一个,您可以使用带有以下成语的$ _REQUEST超全局:
$var = isset($_REQUEST['foo']) ? $_REQUEST['foo'] : null;
$_REQUEST
是$_GET
和$_POST
的结合。