繁体   English   中英

登录表单没有出现

[英]login form does not appear

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

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

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

  1. 您的login_form.php视图是自定义视图吗? 路径正确吗? 尝试使用简单的几乎为空的视图(不知道,其中是否只有“ hello world”文本?)以查看是否正确调用了该视图。
  2. 如果您使用的是Tank Auth提供的默认login_form.php视图,并且按原样复制了内容,则该视图应位于auth文件夹内(因此它位于下载的软件包中)。 因此,您应该使用$data['auth/login_form'];来调用它$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对其进行调用。 如果可行,请查看auth控制器的login()方法,您将看到原始login_form.php需要如何以及使用哪个变量。

  4. 关键点是,您不需要echo视图,因此$this->load->view('content'); 够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM