登录表单不会出现

时间:2011-12-15 03:24:39

标签: php codeigniter tankauth

我是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);
    }               
}

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

<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>

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

1 个答案:

答案 0 :(得分: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');就是了。