因此,現在我一直在使用以下來檢查我的發佈數據是否已經設置。
if(! empty($_POST)) { }
但最近我已經看到很多帖子說,上面是一個「黑客」和下面的是正確的「更好」的方式。
if($_SERVER[ 'REQUEST_METHOD' ] === 'POST') { }
通過最近我只是說我是最近才發現了它。所有討論這種後來的方法的帖子都是從2009年開始的。編碼標準有點舊,所以我認爲可以對這個主題有新的看法。
我明白了兩種方法是不同的。第一個被認爲是一個「黑客」,它只是檢查post數組是否已經設置,如果發佈了post請求會發生這種情況。第二個實際上檢查服務器以查看是否已經發布了發佈請求。我想第二個可能會更安全一些,但是如果信息被淨化了,我不會看到它有多大的區別。
我也看到帖子的後面是PHP的版本僅使用< = 4,因爲PHP仍在使用$_REQUEST
全球在這一點上,這是使用的方法PHP程序員確定某些請求參數的來源。我不確定最後的陳述有多準確,因爲舊帖子中提出的問題與我的相同。他們使用全球后,而不是要求。然而,這是比其他任何人(2011)更近的職位,並且來自我所信任的來源。所以我不知道該怎麼做。
幹嘛讓檢查什麼時候做?我見過一些地方說服務器請求方法在這個實例中似乎不起作用,我只能假設它是因爲post取代而得到的,而請求方法只能容納一個參數。所以,如果你同時發佈並獲取數據,你會怎麼做?對這些帖子之一的評論建議使用全局請求而不是帖子並獲取,但我一直認爲這是一個糟糕的主意。
This是最新的源我能找到的,我通過在側類似的問題在提交前找這樣做了。它具體詢問使用提交值來檢查表單是否已通過,但它也提到了請求方法。似乎很多數據表明後者仍然被普遍使用。那麼這個建議是否仍然有效?檢查請求方法仍然是最佳選擇嗎?
的可能重複[isset($ \ _ POST \ [ '提交' \])VS $ \ _ SERVER \ [ 'REQUEST \ _method' \] == 'POST'(HTTP://計算器.com/questions/10943060/isset-postsubmit-vs-serverrequest-method-post) –