if else语句(执行不正确)-Codeigniter

时间:2020-09-21 23:37:14

标签: php codeigniter

我在Admin.php控制器中有一个函数index(),我正在尝试执行'if'语句,但它正在执行'else'语句。我登录的管理员用户和密码正确。我的代码有问题,这里有人可以帮助我。提前致谢。 :)

这是我的代码:

//Admin.php controller

    <?php
class Admin extends CI_Controller
{
  public function __construct()
  {
    parent::__construct();
    if ($this->session->userdata('logged_in') !== TRUE) {
      redirect('Login');
    }
  }
  function index()
  {
    if ($this->session->userdata('level') === '1') {
      $this->load->view('admin_view');
    } else {
      echo "Access Denied";
    }
  }
}

 //Login.php controller

    <?php

class Login extends CI_Controller
{
  public function __construct()
  {
    parent::__construct();
    $this->load->model('Login_model');
  }
  public function index()
  {
    $this->load->view('login_view');
  }

  public function auth()
  {
    $username = $this->input->post('user_name', TRUE);
    $password = $this->input->post('user_pass', TRUE);
    $result = $this->Login_model->check_user($username, $password);
    if ($result->num_rows() > 0) {
      $data = $result->row_array();
      $name = $data['user_name'];
      $level = $data['user_lvl'];
      $sesdata = array(
        'user_name' => $username,
        'user_lvl' => $level,
        'logged_in' => TRUE
      );
      $this->session->set_userdata($sesdata);
      if ($level === '1') {
        redirect('Admin');
      } elseif ($level === '2') {
        redirect('User');
      }
    } else {
      echo "<script>alert('Access Denied');history.go(-1);</script>";
    }
    $this->load->view('login_view');
  }
}

1 个答案:

答案 0 :(得分:-1)

我建议使用双等于而不是三等于

if ($this->session->userdata('level') == '1') {
  $this->load->view('admin_view');
} else {
  echo "Access Denied";
}

还要检查级别是字符串还是整数。