如何限制对CodeIgniter中特定功能的访问?

时间:2010-03-15 08:36:43

标签: codeigniter

我在codeigniter中有一个巨大的控制器,有很多功能。我想限制对某些功能的访问。我该怎么办?

我可以使用cron守护程序调用函数???

或者我应该将这些功能放在另一个控制器中吗?

3 个答案:

答案 0 :(得分:2)

  1. a)要限制对控制器中函数的访问,请使用私有函数声明示例:
  2. function _example_function(){...} 使用下划线!!

    这样就无法通过URL调用此函数。

    1. b)限制对控制器中函数的访问的其他简单方法是使用会话变量和状态来阻止访问。
    2. 2。)是的你可以使用cron来运行函数只需调用URL:

      <强> http://host/controller_name/FUNCTION

      的问候,
      佩德罗

答案 1 :(得分:0)

  

我有一个巨大的控制器   codeigniter,具有许多功能。一世   想限制访问某些   功能。我该怎么办?

您可以使用基于会话的某些访问控制来限制对某些控制器的访问 - >仅限功能。在函数开始时,您可以将代码放置为if($ _ SESSION ['user']!='xyz')exit('access denied');

  

我可以使用调用函数吗?   cron daemon ???

是的,您可以使用此命令调用cron中的任何控制器功能 wget https://www.example.com/controller-name/function-name

  

或者我应该将这些功能放在另一个控制器中?   如果代码变得非常大并且变得无法管理,那么重构代码总是一个好主意。

答案 2 :(得分:0)

另一种方法是使用受保护的命名空间。当我尝试调用一个标记为受保护的函数时,我可以在PHP代码中使用它,但当我尝试通过浏览器加载它时,我会收到404.

当然将它标记为私有也会起作用,但是你失去了在类扩展中使用该函数的能力。在使用核心扩展时会出现很多问题。

铜 罗马