2015-07-07 4 views
0

Я пытаюсь отображать только кнопку входа/форму входа, когда пользователь не вошел в систему, и я не совсем уверен, как это сделать. Я уже установил логин и регистрацию, но также хочу приветствовать пользователя с сообщением после входа в систему и просто скрыть форму входа. Как ... «С возвращением, $ user».Показать логин только в том случае, если пользователь не зарегистрирован в Codeigniter

Вот некоторые из моего кода в качестве эталона:

Контроллер Логина:

function login() { 
    $query = $this->login_model->validate(); 

    if ($query) { 
     $data = array (
       'username' => $this->input->post ('username'), 
       'is_logged_in' => TRUE 
     ); 

     $this->session->set_userdata ($data); 
     redirect ('user/dashboard'); 
    } else { 
     redirect(base_url()); 
    } 
} 

Модель:

class Login_model extends CI_Model { 
    function validate() { 
     $this->db->where ('nume', $this->input->post ('username')); 
     $this->db->where ('parola', $this->input->post ('parola')); 
     $query = $this->db->get ('users'); 

     if ($query->num_rows() == 1) { 
      return true; 
     } 
    } 
} 

Вид:

<div class="dropdown pull-right drop hidden-xs"> 
    <button class="btn btn-default dropdown-toggle" type="button" 
     id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" 
     aria-expanded="true"> 
     Login <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu cs-padding" aria-labelledby="dropdownMenu1"> 
     <?php echo form_open('menu/login'); ?> 
     <li>Cont: <?php echo form_input(array('name'=>'username', 'class'=>'form-control custom-search hidden-sm form-custom', 'placeholder' => 'Nume',)); ?></li> 
     <li>Parola: <?php echo form_input(array('name'=>'parola', 'class'=>'form-control custom-search hidden-sm form-custom', 'placeholder' => 'Parola',)); ?></li> 
     <?php echo form_submit(array('name'=>'logare','value' => 'Login', 'class'=>'btn btn-default btn-custom col-lg-12')); ?> 
     <?php echo form_close(); ?> 
    </ul> 
     <a href="<?php echo base_url(). "menu/inregistrare"; ?>"><button class="btn btn-default">Inregistrare</button></a> 
</div> 

Надеется, что вы ребята могут мне помочь, спасибо!

+0

Вы можете проверить его с помощью сеанса переменная 'если (IsSet ($ this-> session-> userdata ('your_variable'))) {// не показывать логин} else {/// show login} ' –

+0

Пробовал это, но я получаю« Неустранимая ошибка: не могу использовать isset() в результате вызова функции (вместо этого вы можете использовать «null! == func()»). – Dragos

+1

** загрузить сессионную библиотеку **. Затем попробуйте код @Uchiha –

ответ

1

С учетом изменения кода в

<div class="dropdown pull-right drop hidden-xs"> 
    <button class="btn btn-default dropdown-toggle" type="button" 
     id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" 
     aria-expanded="true"> 
     Login <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu cs-padding" aria-labelledby="dropdownMenu1"> 
     <?php if($this->session->userdata('is_logged_in')){ 
     echo "welcome back ".$this->session->userdata('username'); 
     }else {?> 
     <?php echo form_open('menu/login'); ?> 
     <li>Cont: <?php echo form_input(array('name'=>'username', 'class'=>'form-control custom-search hidden-sm form-custom', 'placeholder' => 'Nume',)); ?></li> 
     <li>Parola: <?php echo form_input(array('name'=>'parola', 'class'=>'form-control custom-search hidden-sm form-custom', 'placeholder' => 'Parola',)); ?></li> 
     <?php echo form_submit(array('name'=>'logare','value' => 'Login', 'class'=>'btn btn-default btn-custom col-lg-12')); ?> 
     <?php echo form_close(); ?> 
     <?php }?> 
    </ul> 
     <a href="<?php echo base_url(). "menu/inregistrare"; ?>"><button class="btn btn-default">Inregistrare</button></a> 
</div> 
+0

Работает отлично, спасибо! – Dragos

1

Вот код для проверки пользователем входа в систему, и вы можете поставить кнопку здесь

$isLogin= $this->session->userdata('is_logged_in'); 
    if(!isset($isLogin)||$isLogin!=true){ 
     //dont show login 
    }else{ 
     //show login 
    }