3 回答

TA貢獻1864條經(jīng)驗 獲得超6個贊
好吧,他們確實沒有做同樣的事情。
$_SERVER['REQUEST_METHOD']
包含請求方法(驚奇)。
$_POST
包含任何帖子數(shù)據(jù)。
POST請求可能不包含POST數(shù)據(jù)。
我檢查了請求方法—實際上,我從未想過要測試$_POST
陣列。不過,我檢查了必填字段。因此,空的發(fā)布請求會給用戶很多錯誤消息-這對我來說很有意義。

TA貢獻1827條經(jīng)驗 獲得超8個贊
我曾經(jīng)檢查過,$_POST
直到遇到更大的POST數(shù)據(jù)和上傳的文件的麻煩為止。存在配置指令,post_max_size
并且upload_max_filesize
-如果超過其中任何一個,$_POST
則不填充數(shù)組。
因此,“安全方法”是檢查$_SERVER['REQUEST_METHOD']
。不過,您仍然必須isset()
在每個$_POST
變量上使用,并且無論您檢查還是不檢查都沒有關系$_SERVER['REQUEST_METHOD']
。

TA貢獻1780條經(jīng)驗 獲得超1個贊
如果您的應用程序需要根據(jù)post類型的請求做出反應,請使用以下命令:
if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') { // if form submitted with post method
// validate request,
// manage post request differently,
// log or don't log request,
// redirect to avoid resubmition on F5 etc
}
如果您的應用程序需要對通過郵寄請求收到的任何數(shù)據(jù)做出反應,請使用以下命令:
if(!empty($_POST)) { // if received any post data
// process $_POST values,
// save data to DB,
// ...
}
if(!empty($_FILES)) { // if received any "post" files
// validate uploaded FILES
// move to uploaded dir
// ...
}
它是特定于實現(xiàn)的,但是您將同時使用+ $ _FILES超全局變量。
- 3 回答
- 0 關注
- 1190 瀏覽
添加回答
舉報