2012-06-29 4 views
2

как я могу проверить, вошел ли пользователь в систему или нет в поле зрения ??CodeIgniter Ion_auth проверить логин

что-то вроде этого:

if ($this->ion_auth->logged_in()) 
{ 
    // do something .. 
} 
else 
{ 
    // do something else .. 
} 

и как я могу получить данные пользователей в переменную?

спасибо большое.

ответ

8

В контроллере, вы можете сделать что-то вроде

function some_method() { 
    if ($this->ion_auth->logged_in()) { 
     $loggedin = true; 
    } else { 
     $loggedin = false; 
    } 

    $data['loggedin'] = $loggedin; 

    $this->load->view('some_view.php', $data); 
} 

, а затем на ваш взгляд

<?php if ($loggedin): ?> 
    <p>Logged in</p> 
<?php else: ?> 
    <p>Please log in</p> 
<?php endif; ?> 


В качестве альтернативы, вы можете просто загрузить другой вид из вашего контроллера, если пользователь вошел в систему или нет.

2

Как сказал stealthyninja, это должно быть выполнено в контроллере. Вы можете сократить количество кода в контроллерах, расширив базовый контроллер CodeIgniter, а затем попросите свой контроллер для аутентифицированных областей вашего проекта расширить свой пользовательский контроллер. У вашего пользовательского контроллера может быть конструктор, который проверяет, аутентифицирован ли пользователь и маршрутизирует ли он его. Этот же конструктор может также устанавливать переменные в пределах, чтобы быть легко доступными подклассами пользовательского контроллера.

+0

Спасибо за подсказку. Дополнительная информация в разделе «Расширение базового класса» на этой странице: http://ellislab.com/codeigniter/user-guide/general/core_classes.html – tagawa

0

Контроллер:

$this->ion_auth->logged_in() ? $data['logged'] = true : $data['logged'] = false; 

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

Вид:

<?php if ($logged): ?> 
    do something... 
<?php else: ?> 
    do something else... 
<?php endif; ?> 
Смежные вопросы