Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Обновление сессии (PHP)

they tryna be cray
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
22 Ноя 2017
Сообщения
262
Реакции
78
Здарова! Не могу понять, как обновить информацию в сессии после обновления данных в бд. Использую библиотеку rb php.

PHP:
Expand Collapse Copy
if (isset($_POST['submit_birthday']))
{
    $user = R::load('users', $_SESSION['logged_user']->id);
    if (!$user) { exit('error'); }
    $bth_day = htmlspecialchars($_POST['birthday_day']);
    $bth_month = htmlspecialchars($_POST['birthday_month']);
    $bth_year = htmlspecialchars($_POST['birthday_year']);
    $bth_buffer = $bth_day .'/'. $bth_month .'/'. $bth_year;
    $user->birthday_date = $bth_buffer;
    R::store($user);
}

Вывод информации:
echo $_SESSION['logged_user']->birthday_date;
 
Не знаю как с rb, но чтобы брать данные из бд, сначало преобразуй данные в нормальный массив
Примерно так
PHP:
Expand Collapse Copy
$_SESSION['user'] = [
    'id' => // Переменная которая берет данные из бд по типу $user['id']
];
// Вызов

echo $_SESSION['user']['id'];
Если не прав сори =)
 
Не знаю как с rb, но чтобы брать данные из бд, сначало преобразуй данные в нормальный массив
Примерно так
PHP:
Expand Collapse Copy
$_SESSION['user'] = [
    'id' => // Переменная которая берет данные из бд по типу $user['id']
];
// Вызов

echo $_SESSION['user']['id'];
Если не прав сори =)
Не, там проблема в другом. Допустим, когда юзер авторизовался на странице и захотел поменять какую-то информацию про себя(в поле about me), значение в бд менялось, но на самой странице оставались старые данные из сессии.Значение обновлялось только при перезаходе в профиль.

Пофиксил эту залупу таким вот образом:

PHP:
Expand Collapse Copy
$user = R::load('users', $_SESSION['logged_user']->id);
if (!$user) { exit('error'); }
$user->shortinf = trim(htmlspecialchars($_POST['shortinf']));
R::store($user);
$_SESSION['logged_user']->shortinf = trim(htmlspecialchars($_POST['shortinf']));
header('Refresh');

Но не знаю, на сколько это правильный способ, мб есть другие альтернативы


Безымянныйuiygbk.png
 
Изначально так надо было проблему изложить, я фиксил это тем что юзера просто выкидывали и он заходил заново, а так это норм
 
Назад
Сверху Снизу