Codeigniter - убедитесь, что сеанс всегда актуален с базой данных

0

Когда пользователь входит в систему, я получаю информацию о сеансе из базы данных и сохраняю ее в таблице ci_sessions в базе данных.

У меня есть одна проблема. Когда пользователь входит в систему, я приветствую их из информации, которая сохраняется в сеансе. Например, Welcome, <?php echo $first_name;?> Welcome, <?php echo $first_name;?>

Тем не менее, это число в моей таблице базы данных users где я храню номер. Это число также сохраняется в таблице ci_sessions. Я назвал эту цифровую entry. Итак, когда пользователь входит в систему, в левой части заголовка, он говорит о Your Entry Points: <?php echo $entry;?> Your Entry Points: <?php echo $entry;?>.

Я попытался изменить entry из таблицы базы данных моих users, но она не будет влиять на точку входа, отображаемую пользователю в заголовке, потому что я выполняю эхо из сеанса.

Как я могу убедиться, что моя сессия всегда обновляется на каждой странице. Другими словами, как мне обновлять сеанс каждый раз, когда пользователь обновляет свою страницу, поэтому, если я вручную изменю значение entry из базы данных, ему будет показана новая запись после обновления страницы?

Мой код:

<?php

$entry = $this->session->userdata('entry');
$email = $this->session->userdata('email');
$sql = "SELECT entry from users WHERE email = '" . $email . "' LIMIT 1";
$sess_data = array(
            'entry' => $entry,
            'email' => $email,
            );
$this->session->set_userdata($sess_data);
?>

Это, к сожалению, не работает по какой-то причине. Может кому-то помочь. Благодарю.

  • 2
    Поскольку вы не отправляете запрос в базу данных, у вас есть пустой массив sess_data.
Теги:
codeigniter

1 ответ

0

На самом деле это не ответ. На самом деле у меня точно такая же проблема. У меня есть хостинг электронной коммерции в Godaddy и попытался решить проблемы сеанса, сохранив их в базе данных, так как кажется, что вы не можете обновлять файлы cookie "на лету" с помощью этого хостинг-провайдера. Я имею в виду, что ваша проблема в базе данных в точности моя, но в сеансе CI (cookie).

Я думаю, лучший вариант - сохранить эту переменную в отдельном поле в базе данных, обновить ее вручную и сопоставить с идентификатором сеанса.

Это позор, потому что на моем сервере разработки он работает отлично.

  • 0
    В итоге я выполнил запрос в моем файле header.php, который включен в каждую страницу, и в запросе я получаю информацию о пользователе из базы данных и показываю ее пользователю. Например. Hey, $first_name . Переменная first_name ссылается на строку, которую я получил из запроса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню