2013-09-01 79 views
1

在Codeigniter中是否有內置功能來知道控制器中的HTTP方法aka請求方法(get/post/put ...)? 我覺得是這樣的:阻止GET訪問某個URI

if (! $this->input->is_post()) show_error('Access forbidden', 403); 

我想禁止訪問GET方法需要投入後的功能。我無法在文檔中找到關於這件簡單的事情。

回答

2

試試這個:

if($_SERVER['REQUEST_METHOD'] == 'GET'){ 
    exit(); 
} 
//continue with your code. it's a POST. 
1

在正常情況下,你可以使用如下

if($_SERVER['REQUEST_METHOD'] == 'GET') 
//abort 

,或者你可以創建這樣的CI幫手。

如果你想阻止發佈,那麼在if條件中使用字符串'POST'。這是直線 轉發。

可疑的情況下,如果你想阻止後(如果你覺得請求方法進行操作)

注:我沒有用過以下,它只是我的想法瞬間。 檢查http原始輸入數據。

$rawdata = file_get_contents('php://input'); 

可能是你可以檢查strlen的大於零... 或在此處添加你的邏輯。

假設你不想解決這個問題,只能使用codeigniter

+0

一點俯瞰讓我做的不是運營商的錯別字事業這讓我覺得你是防止你如果條件帖子。無論如何,我沒有更新我的答案。 –

1

你可以嘗試像這樣的:

if($this->input->server('REQUEST_METHOD') == 'POST'){ 
    show_error('Access forbidden', 403); 
}