аутентификация в CodeIgniter - PullRequest
2 голосов
/ 26 февраля 2010

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

как то так во взглядах

if(is_logged_in()):
//some options here
else:
echo "you need to login to have more options";
endif;

так где я должен добавить этот код? в папке помощника?

РЕДАКТИРОВАТЬ: Сейчас я проверяю, как это выглядит, это работает, но я не знаю, является ли это лучшей практикой. «Is_logged_in» - это то, что я установил в true, когда учетные данные были проверены

if($this->session->userdata('is_logged_in'))

РЕДАКТИРОВАТЬ:

так что если я сделаю помощника для вызова этой функции. Могу ли я проверить, используя функцию userdata?

это функция, которая создает сеанс

$data = array(
    'username' => $this->input->post('username'),
    //usertype toevoegen hier
    //email toevoegen
    //deposit money
    'is_logged_in' => true
    );
$this->session->set_userdata($data);

Как я мог использовать данные сеанса в функции из моего файла помощника?

Ответы [ 2 ]

5 голосов
/ 26 февраля 2010

Если вы хотите использовать ее как отдельную функцию, которую можно вызывать из любого места, лучше всего сделать ее помощником. Может быть полезно думать о помощниках как о лезвиях швейцарского армейского ножа в вашем наборе инструментов CodeIgniter.

Таким образом, вы можете изменить свои чеки позже, переместить все вокруг и все еще делать звонки на isloggedin(). Однако оба способа работают. $this->user->isloggedin() немного более многословно, но представляет такое же полезное разделение проблем.

EDIT:

Если вы хотите выполнять вызовы данных сеанса во вспомогательном режиме, способ сделать это - get_instance().

В начале вашего файла помощника сделайте следующее: $CI =& get_instance();

function user_logged_in() {
    $CI =& get_instance();
    // Do what you want to do with session.
    // Simply replace $this->session ... etc. with
    // $CI->session ... etc.
...
}
0 голосов
/ 26 февраля 2010

Было бы неплохо добавить его в представление, и это логика представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...