簡體   English   中英

如果有人通過POST或GET來告訴php頁面怎么說?

[英]How do I tell for a php page if someone came by POST or GET?

我想在php中有一個頁面,通常根據發送給它的GET請求顯示信息。 但是,我希望它能夠處理某些POST請求。 那么,如何判斷POST是否發送了任何數據,以便我可以采取行動呢?

使用$_SERVER['REQUEST_METHOD']確定您的頁面是通過GET還是POST請求訪問的。

如果它是通過post訪問的,那么檢查$_POST任何變量來處理。

如果你想通過POST和GET傳遞相同的變量,那么你總是可以使用包含POST和GET參數的REQUEST。 但是,這通常被視為一個安全漏洞,因為它意味着變量可以更容易被欺騙。

如果您想測試請求是發送POST還是GET,那么您可以:

if($_SERVER['REQUEST_METHOD'] === 'post')
{
    // Do one thing
}
elseif($_SERVER['REQUEST_METHOD'] === 'get')
{
    // Do another thing
}

要么:

 if(!empty($_POST))
 {
     // Process POST
 }
 elseif(!empty($_GET))
 {
     // Process GET
 }

檢查$_SERVER['REQUEST_METHOD'] 文檔在這里

對於這樣的問題,通常是關於環境變量,這是我如何解決它們:

  • 創建一個只調用phpinfo()的foo.php;
  • 獲取foo.php
  • 發布到foo.php
  • 比較phpinfo()的輸出; 並使我的理論知道行為是什么
  • 在php.net上驗證我對理論的理論

它比在php.net的doc沼澤中找到答案容易得多。

如果有頁面,我使用$ _REQUEST變量

它還需要能夠處理某些POST請求

http://is.php.net/manual/en/reserved.variables.request.php

從手冊:

一個關聯數組,默認情況下包含$ _GET,$ _POST和$ _COOKIE的內容。

!empty($_POST)

我很確定你可以通過GET和POST訪問一個頁面,所以這將是IMO最安全的方式

暫無
暫無

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

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