Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 模拟CodeIgniter中出口使用的可比方法_Php_Codeigniter_Codeigniter 2_Codeigniter Url - Fatal编程技术网

Php 模拟CodeIgniter中出口使用的可比方法

Php 模拟CodeIgniter中出口使用的可比方法,php,codeigniter,codeigniter-2,codeigniter-url,Php,Codeigniter,Codeigniter 2,Codeigniter Url,我是CodeIgniter的新手。在此之前,我开发了一个登录脚本,使登录页面看起来与用户正在查看的页面相同,其行类似于以下内容: include('loginpage.php'); exit; 但是对于CodeIgniter,由于输出类的功能尚未完全执行,因此以下结果不会显示任何内容: $this->load->view('loginpage'); exit; 所以我的问题是:有没有其他方法可以模仿我以前方法的功能?最终,我更喜欢这种方法,因为在用户看来,他们在他们请求的页面上,

我是CodeIgniter的新手。在此之前,我开发了一个登录脚本,使登录页面看起来与用户正在查看的页面相同,其行类似于以下内容:

include('loginpage.php');
exit;
但是对于CodeIgniter,由于输出类的功能尚未完全执行,因此以下结果不会显示任何内容:

$this->load->view('loginpage');
exit;
所以我的问题是:有没有其他方法可以模仿我以前方法的功能?最终,我更喜欢这种方法,因为在用户看来,他们在他们请求的页面上,如果还没有登录,他们需要先登录才能查看该页面。

试试:

$msj= $this->load->view('loginpage',$data,true);
exit($msj);

在codeigniter中实现这一点的一种方法是,在控制器类中,首先检查登录名。这可以在构造函数中完成:

function __construct()
{
    parent::__construct();
    $this->_checkLogin();
}
function checkLogin()
{
    $loggedIn = $this->getLoggedIn();
    if(!$loggedIn)
    {
        $this->load->view('loginpage');
        exit;
    }
}

该函数将在任何其他控制器操作之前执行。如果您在整个应用程序中全局性地需要此功能,并且您有多个控制器,请使任何控制器从特定于您的应用程序的基本控制器扩展。请参阅中的替换核心类。

这实际上是我迄今为止一直在尝试的方法。。。view()将视图存储在输出类中,该类在其余代码执行后输出。虽然codeigniter可以执行它的代码,但我不想让我的其余代码执行。这似乎是可行的。。。使用这种方法有什么问题吗?它会阻止codeigniter执行任何重要的操作吗?不错。。。但并非所有情况都如此。我只在受保护的控制器中使用它。