2013-09-01 44 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); 
}