Не могу взять и показать имя данных из сеанса входа в CodeIgniter - PullRequest
1 голос
/ 29 апреля 2019

Итак, я хочу создать страницу входа в систему, а затем показать имя пользователя на приборной панели после успешного входа в систему.Но имя не будет отображаться на приборной панели.это просто пустые места.нет уведомлений об ошибках или что-то.пожалуйста помоги.спасибо

Я работаю на PHP 7


Контроллер Auth.php

public function index()
{
    $this->form_validation->set_rules('email','email',
        'trim|required|valid_email');
    $this->form_validation->set_rules('password','Password','trim|required');
    if($this->form_validation->run() == false){
        $data['title']='Login Page';
        $this->load->view('templates/auth_header', $data);
        $this->load->view('auth/login');
        $this->load->view('templates/auth_footer');
    }
    else{
        //success validation
        $this->_login();


    }

}

private function _login()
{
    $email = $this->input->post('email');
    $password = $this->input->post('password');

    $user = $this->db->get_where('user',['email' => $email])->row_array();

    if($user){
        //user active
        if($user['is_active']==1){
            //check password
            if(password_verify($password, $user['password'])){
                //if pass were right
                $data = [
                    'email' => $user['email'],
                    'role_id' => $user['role_id']
                ];
                $this->session->set_userdata('$data');
                redirect('user');

            }
            else{
                $this->session->set_flashdata('message','<div class="alert alert-danger" role="alert"> Wrong password</div>');
                redirect('auth');
            }

        }
        else{
        //
        $this->session->set_flashdata('message','<div class="alert alert-danger" role="alert"> 
            Email has not been activated</div>');
        redirect('auth');

    }

    }
    else{
        //no email in database
        $this->session->set_flashdata('message','<div class="alert alert-danger" role="alert"> 
            Email is not registered</div>');
        redirect('auth');

    }

}

User.php в контроллере (управление для пользователя)

public function index()
{

    $data['user'] = $this->db->get_where('user',['email' => $this->session->userdata('email')])->row_array();
    $data['title']='Dashboard - SmartStock';
    $this->load->view('user/index', $data);
}

и команда для отображения данных на странице

index.php

  <div class="navbar-menu-wrapper d-flex align-items-stretch">

    <ul class="navbar-nav navbar-nav-right">
      <li class="nav-item nav-profile dropdown">
        <a class="nav-link dropdown-toggle" id="profileDropdown" href="#" data-toggle="dropdown" aria-expanded="false">
          <div class="nav-profile-img">
            <img src="<?= base_url('assets/'); ?>images/profile/default.png" alt="image">
            <span class="availability-status online"></span>             
          </div>
          <div class="nav-profile-text">
            <p class="mb-1 text-black"><?= $user['name']; ?></p>
          </div>
        </a>

1 Ответ

0 голосов
/ 29 апреля 2019

Возможно, ваша ошибка здесь в строке Auth -> _ login () set_userdata,
замена

$this->session->set_userdata('$data');

с

$this->session->set_userdata($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...