2010-12-03 1 views
2

Я использую библиотеку autign библиотеки tankigniter для работы с пользователями, и она отлично работает. Всякий раз, когда я пытаюсь получить доступ к любому контроллеру, функция проверяет, если пользователь вошел в систему, как это:Резервуар-накопитель Codeigniter - пользователь выходит из строя без какой-либо известной причины

if($this->tank_auth->is_logged_in()) { 

Если он вошел, я загружаю модель, но если нет, то я редирект на страницу входа в систему. Он работает так вот в течение одного месяца, но теперь я расширяю свое приложение и строю некоторые другие контроллеры, которые используют ту же технику, но файлы находятся в другой папке. Предыдущее рабочее приложение по-прежнему отлично работает, но в этом приложении из новой папки (это, в основном, новый модуль для этого приложения, использует одну и ту же страницу входа, но перенаправляет по-разному в зависимости от выбора пользователем модуля). Я могу войти в систему правильно, я могу сделать любой запрос к контроллеру без проблем, но в какой-то момент он сообщает мне, что пользователь не вошел в систему. Срок действия не закончился или что-то в этом роде, это похоже на то, что я делаю один запрос сейчас, расширяя свою сессию, а затем через 3 секунды интервал заставляет пользователя выйти из системы ... Я не делал ничего другого с моими новыми контроллерами, но все же, через некоторое время, иногда это занимает 5 минут, иногда 15 минут, он выходит из системы ... Я не знаю, почему, что-то возится с моей сессией? Я не использую сеанс ни для чего другого ...

Кто-нибудь знает, о чем это? Или любое предложение? Я могу предоставить дополнительную информацию, если потребуется.

спасибо.

EDIT: Новый модуль состоит в более контроллерах в одной и ту же CodeIgniter инсталяции, он работает с той же CI конфигурацией, одной библиотекой бак Идента и функции копируются в основном контроллер запросов, как это:

class Requests extends Controller 
{ 
    function __construct() 

    { 
     parent::__construct(); 

     $this->load->helper(array('form', 'url')); 
     $this->load->helper('date'); 
     $this->load->library('form_validation'); 
     $this->load->library('tank_auth'); 
    } 

.............. 
more functions 
.............. 

    function getServices() { /// One of the functions that the new module uses 
      if (!$this->tank_auth->is_logged_in()) { 
       return; 
      } else { 
       $this->load->model('requests/getServices'); 
       $data['tid'] = $_POST['tid']; 
       $this->getServices->showData($data); 
      } 

     } 

ответ

0

Я возился со своей сессией в одной функции загрузки изображений, которую я использовал в другом приложении. Я стирал эти строки сеанса, и теперь он работает так, как должен. Код сеанса был PHP-кодом на основе $ _SESSION, если кто-то задается вопросом.

Спасибо.

+0

У меня такая же проблема из старого кода, над которым я работаю. Можете ли вы подробно описать, что вы сделали? Удалили ли вы использование $ _SESSION непосредственно в коде? – Strategist 2015-10-30 01:12:38

2

Я подозреваю, что задержка в исчезновении печенья имеет какое-то отношение к $ config ['time_to_update'] (по умолчанию 300 секунд).

Файлы cookie обновляются только каждые 5 минут, если переменные сеанса не изменяются. Таким образом, может быть, что cookie становится недействительным с точки зрения новой части приложения, но класс Session не понимает его до тех пор, пока не пройдет 300 секунд, после чего он будет очищен и пользователь будет выведен из системы ,

Можете ли вы предоставить более подробную информацию о том, где находится новый код. Является ли это той же установкой CodeIgniter? и т. д.

+0

добавлено больше информации, спасибо. – 2010-12-04 01:15:49

Смежные вопросы