簡體   English   中英

PHP - POST和GET方法在同一頁面上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM