Возможно, я не совсем понимаю ваш вопрос, но когда вы звоните $this->session->userdata('something')
для сеанса с истекшим сроком, он просто возвращает FALSE
.
Итак, лучший способ - проверить, не является ли переменная FALSE? Как и в случае с любой другой переменной, которая может не соответствовать требуемому значению:
if($this->session->userdata('userid')){}
//or check it into the model's method, wherever you prefer
Где и когда это сделать, сильно зависит от вашего дизайна. Если вам всегда нужно делать одну и ту же проверку, вы можете сделать это библиотекой или функцией модели, так что вам просто нужно написать свой код один раз и просто вызвать этот метод. Если вам нужно сделать это раньше всего, вы можете подумать о том, чтобы поместить его в конструктор или, как предложил @Jordan Arsenault, создать родительский MY_Controller, который выполняет проверку, и все ваши обычные контроллеры расширяют его. На самом деле, это зависит от вашей архитектуры, и вы не предоставили достаточно информации, чтобы ответить на этот вопрос.
Все, что я могу сказать, это сделать ваши методы отказоустойчивыми, всегда проверять правильное значение перед передачей остальной части вашего кода (если истекший сеанс нарушает ваш рабочий процесс)