Codeigniter中的多级登录会话后如何打印用户名

时间:2019-10-18 13:33:07

标签: php codeigniter

因此,我正在使用会话进行登录,我想在标题上创建菜单之一,以便在登录后显示用户名,但是在查看条件时似乎出现了问题 这是我的控制器

<?php 

class Login extends CI_Controller{

    function __construct(){
        parent::__construct();      
        $this->load->model('m_login');

    }

    function index(){
        $this->load->view('header');
        $this->load->view('v_login');
        $this->load->view('footer');
    }

    function auth(){
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $where = array(
            'username' => $username,
            'password' => md5($password),
            'id' => '1');
        $where1 = array(
            'username' => $username,
            'password' => md5($password));
        $cek = $this->m_login->cek_login("admin",$where)->num_rows();
        $cek1 = $this->m_login->cek_login1("admin",$where1)->num_rows();
        if($cek > 0){
            $data_session = array(
                'nama' => $username,
                'status' => "login_admin"
                );

            $this->session->set_userdata($data_session);
            redirect(base_url("admin"));
        }elseif($cek1 > 0){
            $data_session = array(
                'nama' => $username,
                'status' => "login_user"
                );

            $this->session->set_userdata($data_session);
            redirect(base_url("user"));
        }else{
            echo "Username dan password salah !";
        }
    }

    function logout(){
        $this->session->unset_userdata($data_session);
        $this->session->sess_destroy();
        redirect(base_url("welcome"));
    }
} 

这是我的观点

<?php if($this->session->userdata('login_admin')) 
          { ?>
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="">Welcome Admin</a>
          </li> 
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="<?php echo base_url('login/logout'); ?>">Logout</a>
          </li> 
          <?php }elseif($this->session->userdata('login_user')) 
          { ?>
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="">Hai, <?php echo $this->session->userdata("nama"); ?></a>
          </li>
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="<?php echo base_url('login/logout'); ?>">Logout</a>
          </li> 
          <?php
          }else{ ?>
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="login">Masuk</a>
          </li>
          <li class="nav-item px-lg-4">
            <a class="nav-link text-uppercase text-expanded" href="login">Daftar</a> 

有人可以告诉我控制器是否有问题,或者是我所期望的并提供解决方案?

2 个答案:

答案 0 :(得分:3)

您在View中的状况,而不是

<?php if($this->session->userdata('login_admin')) 

应该是

<?php if($this->session->userdata('status') == 'login_admin' ) 

您可以签入Docs来读取会话数据。

答案 1 :(得分:0)

首先,您要更正名称的拼写,然后将其保存到会话中。 然后,您可以通过以下行看到登录的用户名,

    <?= $this->session->userdata('name'); ?>