簡體   English   中英

PHP 將 POST 和 GET 請求混合到一頁

[英]PHP mixing POST and GET Requests to one page

看完之后:

我了解,GET 用於在不更改服務器的情況下檢索頁面,而 POST 用於更改服務器的事物(插入、更新、刪除)。

現在我編寫了一個頁面,該頁面通過設置參數StationNr的 GET 請求調用。 用戶可以填寫表單並向設置了參數Filter的同一頁面發出 POST 請求。 但我不想錯過參數StationNr ,因此我想我把它放到一個隱藏的輸入字段中。 但是參數StationNr要么在$_GET變量中(第一次調用),要么在$_POST變量中(第二次調用)。 我可以做類似的事情:

if (isset($_GET['StationNr']))
    $snr = $_GET['StationNr'];
else if (isset($_POST['StationNr']))
    $nr = $_POST['StationNr'];

但我不喜歡這個。 我也不想使用$_REQUEST['StationNr']因為: 何時以及為什么應該使用 $_REQUEST 代替 $_GET / $_POST / $_COOKIE?

我認為這是一個常見問題,但我還沒有遇到過,因為我是編寫 php 頁面的初學者。 你是如何解決這個問題的?

謝謝!

雖然您可以使用?foo=bar 在 POST 請求中推送 GET 值,但我建議改為檢查請求方法:

if($_SERVER['REQUEST_METHOD'] == 'POST') { ... }

只需使用

<form method="post" action="script.php?get=variables">
 <input name="your_inputs" />
</form>

正確的語法是:

if (isset($_GET['StationNr'])) {   
$snr = $_GET['StationNr'];
}else if (isset($_POST['StationNr']))    
$nr = $_POST['StationNr']; 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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