无法登录以及如何将不同级别的用户重定向到每个成员区页面


Can not login and how to redirect different level user to each member area page

我是CodeIgniter的新手。我试图在CodeIgniter中进行多级用户登录,但仍然无法登录,总是返回登录页面。我想将每个级别的用户重定向到每个成员区页面。

这是我的控制器成员。hp:

    class Member extends CI_Controller{
    function __construct() {
        parent::__construct();
        $this->load->helper(array('form','url'));
        $this->load->model('account_model');
    }
    function login(){
        $form_data = $this->input->post('data');
        if(!empty($form_data))
        {
            if($this->account_model->login($form_data['username'], $form_data['password']))
            {
                redirect('member/index');
            } else {
                redirect('member/login');
            }
        }
        $this->load->view('login');      
    }
}

model account_model.php:

    class Account_model extends CI_Model{
    private $table = 'akun';
    function __construct() {
        parent::__construct();
    }
    function login($username, $password, $level){
        $data = $this->db->where(array('username'=> $username, 'password'=> $password, 'level'=> $level))->get($this->table);

    if($data->num_rows() > 0){
        $akun = $data->row();        
        $session = array(
            'logged_in' => 1,
            'username' =>$akun->username,
            'level' =>$akun->level,         
        );

        $this->session->set_userdata($session);
        return true;
    } else {
        $this->session->set_flashdata('notification', 'Username and Password not match');
        return false;
    }
}

查看login.php:

<?php echo form_open('member/login') ?>
<div class="input">
  <?php
  echo form_label('Username');
  echo form_input('data[username]');
  =?>
 </div>
 <div class="input">
   <?php
   echo form_label('Password');
   echo form_password('data[password]');
   ?>
  </div>
  <div class="submit">
  <?php
   echo form_submit('login', 'Login');
  ?>
  </div>
  <?php echo form_close() ?>

这是我在数据库中的表:

CREATE TABLE IF NOT EXISTS `akun` (
  `username` varchar(20) NOT NULL,
  `password` varchar(8) NOT NULL,
  `level` varchar(12) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我在成员区的应用程序/视图中有一个名为member.php的页面。但我无法从登录重定向到那个页面。此外,我仍然不知道如何将不同级别的用户重定向到每个成员区域。我希望有人能解决我的问题。

您的代码中有多个问题,包括行

echo form_password('data[password]');

您没有向视图传递任何数据,但仍在尝试显示它。更不用说语法错误了。要将数据传递到视图,请尝试以下操作:

$this->load->view('login',$data);

并确保$data中有正确的数据。然而,这只是一个问题。您需要比以前更彻底地阅读CI用户指南。