1

我是 CodeIgniter 的新手,我使用 Tank Auth 作为我的登录表单。当我尝试将 Tank Auth 放入我的模板时,登录表单根本不会出现。除了控制器,我没有改变任何东西。

这是我的控制器代码:

public function __construct(){
    parent::__construct();
    $this->load->helper(array('form','url'));
    $this->load->library('tank_auth');
    //$this->load->model('users_model');
}
public function index(){
    if (!$this->tank_auth->is_logged_in()) {
        $data['loginform']='login_form';
        $this->load->view('tampilan',$data);
        //redirect('/auth/login/');
    } else {
        $data['user_id']    = $this->tank_auth->get_user_id();
        $data['username']   = $this->tank_auth->get_username();
        $this->load->view('welcome', $data);
    }               
}

这是我在视图文件夹中的模板:

<div id="page">

<div id="bg1">

    <div id="bg2">

        <div id="bg3">

            <!-- content -->

            <?php  $this->load->view($loginform); ?>

            <!-- end content -->

            <!-- sidebar -->

            <?php echo $this->load->view('content'); ?>

            <!-- end sidebar -->

        </div>

    </div>

</div>

我认为这是简单的代码,因为我只是更改了控制器,但为什么它没有出现在浏览器中?

4

1 回答 1

0

代码本身看起来是正确的。我可以说的是,这可能是您调用了错误的视图,并且错误报告级别太低而无法向您显示错误。我是说:

  1. 您的 login_form.php 视图是自定义视图吗?路径对吗?尝试使用一个简单的几乎是空的视图(不知道,其中只有一个“hello world”文本?),看看它是否被正确调用。
  2. 如果您使用的是 Tank Auth 提供的默认 login_form.php 视图,并且您按原样复制了内容,则该视图应该位于文件夹内auth(因此它包含在下载的包中)。因此,您应该$data['auth/login_form'];在控制器中调用它,
  3. 在第 2 点的可能性中,原始 Tank Auth login_form.php 包含许多变量,这些变量恰好在您的代码中未定义。如果你不显示错误,那么你会得到一个空白页。在 index.php 中将 ENVIRONMENT 设置为“development”,如果这还不够,请将其放在 index.php 的开头

    error_reporting(E_ALL);
    ini_set('display_errors',1);
    

    要测试 Tank Auth 的功能,请尝试使用原始控制器调用它,方法是转到http://www.yoursite.com/index.php/auth. 如果login()可行,请查看身份验证控制器的方法,您将了解原始login_form.php需要的方式和变量。

  4. 次要的一点,你不需要echo一个视图,所以$this->load->view('content');足够了。

于 2011-12-15T06:34:57.883 回答