无法使用basepath限制在Codeigniter中直接访问视图和函数

时间:2015-12-30 13:42:58

标签: php codeigniter codeigniter-2

我想停止直接访问Codeigniter中的控制器功能或视图,因为我正在使用以下代码,我在stackoverflow上看到了其他类似的链接,但它们无法正常工作,我可以通过点击url来加载视图:< / p>

  

控制器:abc.php

<?php 

if (!defined('BASEPATH')) exit('No direct script access allowed');

Class Abc extends CI_Controller {

  public function __construct() {
     parent::__construct();
  }

  public function Create_Course() {
     $this->load->view('abc');
  }
}

?>
  

查看:abc.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); ?>
<html>
  <head>
    <title>ABC</title>
  </head>
  <body>
    <h1>Whatever</h1>
  </body>
</html>

2 个答案:

答案 0 :(得分:1)

NO。你完全错了。我们更新在视图中使用它

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); ?>

每个人都可以看到您的 controller/method abc/Create_Course )名称,但 没有人知道您的视图名称 ,而无需查看您的项目。所以没有任何目的隐藏或限制其他人的观点。

无法从URL访问视图文件夹。如果假设一些人如何访问这个,那么也没有人知道你的文件夹名称。所以此警告消息显示在浏览器中。

<html>
<head>
    <title>403 Forbidden</title>
</head>
<body>

<p>Directory access is forbidden.</p>

</body>
</html>

答案 1 :(得分:0)

根据Codeigniters文档,您需要在控制器中的函数名之前加上下划线,如下所示:

private function _utility()
{
  // some code
}

这非常适合表单验证的自定义规则或控制器中您想要的任何其他内容,但不能通过浏览器网址获得。我认为这就是你要找的东西。

相关问题