Как я могу получить доступ к данным в моей базе данных? — CodeIgniter

Я использую CodeIgniter и имею систему входа в систему. Я все еще довольно новичок в php, и мне интересно, как только пользователь войдет в систему, как я могу получить доступ к его / ее данным для использования по всему сайту? Сейчас я пытаюсь заставить его сказать «имя пользователя», но я не знаю, откуда берутся переменные и как я должен их использовать. Прямо сейчас в моем home_view.php у меня есть:

    <div class="main">
<h2>Welcome <?php echo $username; ?>!</h2>
</div>

Выдает эту ошибку:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: username

Filename: views/home_view.php

Line Number: 22

Может кто-нибудь сказать мне, как это сделать?

0

Решение

Вопрос: Как вы получаете доступ к данным вошедшего в систему пользователя для использования по всему сайту?

Зарегистрированные пользовательские данные обычно хранятся в сеансе. Для codeigniter вы можете получить доступ к данным сеанса, используя $this->session->userdata('item');или, например, $this->session->userdata('username');,

Однако, если вы используете определенную систему входа в систему это зависит от системы входа в систему, которую вы используете.


Система пользовательского входа

После получения данных для входа в систему из формы входа в систему передайте данные в сеанс с помощью следующего:

$newdata = array(
'username'  => 'johndoe',
'email'     => '[email protected]',
'logged_in' => TRUE
);

$this->session->set_userdata($newdata);

Затем обратитесь к имени пользователя со следующим:

$this->session->userdata('username');

Увидеть Добавление пользовательских данных сеанса в документации Codeigniter.


Пример системы входа

Популярная библиотека аутентификации codeigntier Tank-Auth.

При использовании Tank-Auth, после того, как пользователь вошел в систему, вы можете позвонить $this->tank_auth->get_username() (который вызывает $this->ci->session->userdata('username'), как уже упоминалось выше). Это может быть сохранено и передано в представление.

В Tank-Auth вы увидите:

Применение / контроллер / welcome.php

$data['user_id']    = $this->tank_auth->get_user_id();
$data['username']   = $this->tank_auth->get_username();
$this->load->view('welcome', $data);

Приложение / просмотров / welcome.php

Hi, <strong><?php echo $username; ?></strong>! You are logged in now.
1

Другие решения

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

$data = array(
'username'  => 'johndoe',
'email'     => '[email protected]',
'logged_in' => TRUE
);

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

и тогда вы можете получить его в любом месте, как

$userdata = $this->session->userdata('logged_info');
0

По вопросам рекламы [email protected]