[英]PHP - POST and GET method on the same page
如果用戶在使用POST方法后登陸頁面,我想使變量$ find等於$ _POST ['find'],但是在同一頁面上使$ find等於$ _GET ['find']如果用戶在使用GET方法后登陸頁面。
我怎么做?
提前致謝,
約翰
$find = $_GET['find'];
$find = $_POST['find'];
您應該使用$_REQUEST
全局變量。 它包含來自$ _GET和$ _POST的所有數據。
或者,您可以檢查請求方法。
$find = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET['find'] : $_POST['find'];
$_REQUEST
變量包含$_GET
, $_POST
和$_COOKIE
的內容,其中variables_order
選項定義讀取變量的順序並覆蓋已存在的內容。
所以你可以使用$_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']
。
字面意思,你要求的是:
if ($_SERVER['REQUEST_METHOD']=='POST') {
$find = $_POST['find'];
} else {
$find = $_GET['find'];
}
或者,您可以使用:
$find = $_REQUEST['find'];
$ _REQUEST是$ _GET,$ _POST和$ _COOKIE的組合。
使用$ _REQUEST ['find']從$ _GET,$ _POST和$ _COOKIE獲取組合信息。
$ _REQUEST返回一個關聯數組,默認情況下包含$ _GET,$ _POST和$ _COOKIE的內容(您可以使用php.ini“request_order”指令更改默認內容)
if(isset($_GET['find'])){
$find = $_GET['find'];
}elseif(isset($_POST['find'])){
$find = $_POST['find'];
}else{
$find = null;
}
// do stuff with $find;
如果您不關心使用哪種方法,那么只需使用$ _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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.