在url调用时使函数未定义

时间:2013-03-21 05:24:57

标签: php codeigniter codeigniter-2

使用Codeigniter,我从url调用[我的控制器]的公共函数,这基本上是框架的正常行为。我将3个参数作为$a, $b, $c传递,当函数执行时,它会检查参数并根据它进行操作。现在,问题是我不希望从url调用我的函数,当它被调用时应该转到404页面。 我知道这可以通过添加privateprotected来实现,但真正的问题是它应该只通过我自己的其他函数访问,而不是通过直接URL访问。 欢迎任何解决方案。

HTTP路由块有效。但是当我传递参数时,函数会被执行,这是一个安全问题。知道如何阻止访问吗?

2 个答案:

答案 0 :(得分:2)

您可以使用路由阻止任何到该控制器/方法的http流量,并重定向到404页面。

在config文件夹的routes.php文件中,添加以下内容

$route['controller/private_method'] = '{your 404 controller}';
$route['controller/private_method/(:any)'] = '{404 controller}';

第二条规则适用于任意数量的参数。

答案 1 :(得分:1)

为什么不将hidden secret variable传递给identify calling this function并且不会从URL调用。