阻止在codeigniter中直接访问表单post函数

时间:2013-09-04 15:26:45

标签: php codeigniter

我正在使用Codeigniter来创建Web应用程序。我遇到的问题是提交表单的功能。我想要做的是通过使用表单中的函数来防止从URL直接访问,因此如果任何人从表单中复制操作方法并通过URL输入访问权限,它将拒绝访问。

请指导我。

谢谢你。

3 个答案:

答案 0 :(得分:3)

严格地说,执行if($_POST)if($this->input->post())之类的操作会在90%的情况下有效,但它们并非100%正确。为什么不?好吧,如果你有一个帖子,这个人触发了表格而没有实际填写任何内容,他们仍然会POST

如果您确实想确保有人POST进入您的控制器,则需要检查REQUEST_METHOD

if($_SERVER['REQUEST_METHOD'] === 'POST')
{
    // this is a POST
}
else
{
    show_404('not-a-POST!');
} 

所有这些都说,限制到POST是最好的选择,非常几次。实际上,您应该优雅地处理GETPOST

答案 1 :(得分:1)

尝试:

if( $this->input->post(null)){
    //your form submit code here
}

答案 2 :(得分:0)

您只需检查$ _POST变量即可执行此操作,

if(!is_array($_POST) || count($_POST)==0)
{
   die('You have no access');
}