Codeigniter 4 как отменить сеанс

#session #codeigniter-4

#сеанс #codeigniter-4

Вопрос:

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

У меня нет проблем с настройкой моего сеанса таким образом :

 session()->set($data);
  

Но если я отменю свой сеанс следующим образом :

 session()->unset($data);
  

Я получаю сообщение об ошибке: вызов неопределенного метода CodeIgniterSession Сессия::unset()

Или я должен просто уничтожить сеанс и переустановить его снова?

Кто-нибудь может мне здесь помочь? Заранее спасибо, ребята!

Комментарии:

1. Ошибка не требует пояснений: функция unset() не существует в библиотеке сеансов в CI4. Чего именно вы пытаетесь достичь? Обновить данные сеанса у вашего пользователя? Уничтожить его сеанс из-за события, подобного действию выхода из системы?

2. @ViLar Приношу извинения за очевидное, поскольку я впервые касаюсь фреймворков и серверного программирования, мне нужно еще многому научиться и разобраться. Да, я хотел бы обновить данные сеанса от моего пользователя, если они обновят свое имя, фамилию и т.д. У CI4 есть эта функция отмены, но я не могу понять, как ее использовать.

3. Удаление данных сеанса

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();