#session #codeigniter-4
#сеанс #codeigniter-4
Вопрос:
Я пытаюсь отменить сеанс пользователя и снова установить сеанс пользователя после использования обновления их профиля. Я продолжаю сталкиваться с проблемой, пытаясь отменить сеанс пользователя, я продолжаю получать ошибки.
У меня нет проблем с настройкой моего сеанса таким образом :
session()->set($data);
Но если я отменю свой сеанс следующим образом :
session()->unset($data);
Я получаю сообщение об ошибке: вызов неопределенного метода CodeIgniterSession Сессия::unset()
Или я должен просто уничтожить сеанс и переустановить его снова?
Кто-нибудь может мне здесь помочь? Заранее спасибо, ребята!
Комментарии:
1. Ошибка не требует пояснений: функция unset() не существует в библиотеке сеансов в CI4. Чего именно вы пытаетесь достичь? Обновить данные сеанса у вашего пользователя? Уничтожить его сеанс из-за события, подобного действию выхода из системы?
2. @ViLar Приношу извинения за очевидное, поскольку я впервые касаюсь фреймворков и серверного программирования, мне нужно еще многому научиться и разобраться. Да, я хотел бы обновить данные сеанса от моего пользователя, если они обновят свое имя, фамилию и т.д. У CI4 есть эта функция отмены, но я не могу понять, как ее использовать.
4. Если данные изменяются, вы можете просто перезаписать их. Вы пробовали это? Вам не нужно «уничтожать» и заново устанавливать его снова.
5. Как сказал @TimBrownlaw, просто используйте
session()->set()
с правильным ключом, и он перезапишет предыдущее значение сеанса
Ответ №1:
В CI4 необходимо использовать
session()->remove($data);
далее, пожалуйста, изучите https://codeigniter.com/user_guide/libraries/sessions.html ?выделить=#удаление данных сеанса
Ответ №2:
Уничтожение сеанса:https://codeigniter.com/user_guide/libraries/sessions.html ?выделить= сеансы#уничтожение сеанса
Чтобы очистить текущий сеанс (например, во время выхода из системы), вы можете просто использовать либо функцию PHP session_destroy(), либо метод библиотеки destroy().
Оба будут работать точно так же:
<?php
session_destroy();
// or
$session->destroy();