如果用户在使用POST方法后登陆页面,我想使变量$ find等于$ _POST ['find'],但是在同一页面上使$ find等于$ _GET ['find ']如果用户在使用GET方法后登陆页面。
我该怎么做?
提前致谢,
约翰
$find = $_GET['find'];
$find = $_POST['find'];
答案 0 :(得分:11)
您应该使用$_REQUEST
全局变量。它包含来自$ _GET和$ _POST的所有数据。
或者,您可以检查请求方法。
$find = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET['find'] : $_POST['find'];
答案 1 :(得分:5)
$_REQUEST
variable包含$_GET
,$_POST
和$_COOKIE
的内容,其中variables_order
option定义了读取变量的顺序并覆盖已存在的内容内容。
因此,您可以使用$_REQUEST['find']
(考虑到find
的Cookie值将覆盖POST和GET)。或者你自己实现它:
if (isset($_GET['find'])) {
$find = $_GET['find'];
}
if (isset($_POST['find'])) {
$find = $_POST['find'];
}
如果代码$find
存在,则$_GET['find']
将成为$_POST['find']
,除非有$_GET['find']
覆盖{{1}}的值。
答案 2 :(得分:2)
字面意思是你要求的是:
if ($_SERVER['REQUEST_METHOD']=='POST') {
$find = $_POST['find'];
} else {
$find = $_GET['find'];
}
或者,您可以使用:
$find = $_REQUEST['find'];
$ _ REQUEST是$ _GET,$ _POST和$ _COOKIE的组合。
答案 3 :(得分:0)
使用$ _REQUEST ['find']从$ _GET,$ _POST和$ _COOKIE获取合并信息。
$_REQUEST返回一个关联数组,默认情况下包含$ _GET,$ _POST和$ _COOKIE的内容(您可以使用php.ini "request_order" directive更改默认内容)
答案 4 :(得分:0)
if(isset($_GET['find'])){
$find = $_GET['find'];
}elseif(isset($_POST['find'])){
$find = $_POST['find'];
}else{
$find = null;
}
// do stuff with $find;
答案 5 :(得分:0)
如果您不关心使用哪种方法,那么只需使用$_REQUEST超级全局。
如果使用哪种方法很重要:
$find = isset($_GET['find']) ? $_GET['find'] : false;
if ($find === false) {
$find = isset($_POST['find']) ? $_POST['find'] : '';
// do a POST-specific thing
}
else {
// do a GET-specific thing
}