2013-08-16 2 views
0

несколько вопросов, прежде чем начать свой проект в CodeigniterCodeIgniter сеансов запросов с несколькими пользователями и повторяющимися логинами

  1. Как долго Codeigniter хранить данные в таблице сеанса для конкретного пользователя. До тех пор, пока он вошел в систему?
  2. Как изменить схему таблицы сеансов, я имею в виду изменение datatypes уже существующей схемы.
  3. Вышеупомянутый вопрос приводит меня к другому, могу ли я сам изменить схему таблицы сеансов?
  4. Могу ли я добавить несколько куки-файлов в браузер пользователя через один session ID.
  5. Как я могу получить доступ к Session таблице через MYSQL консоли или доступна только через Codeigniter
  6. Когда пользователь входит в систему на мой сайт снова, как это печенье с моего сайта, хранящейся во время предыдущего входа пользователя получить доступные мне для чтения. Как я могу их прочитать?

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

+0

Хранение данных сессий в базах данных требует надлежащего блокировки, чтобы быть реализованы. В противном случае два сценария одного и того же сеанса будут выполняться одновременно и перезаписывать данные. PHP делает блокировку по умолчанию, если использует один из существующих обработчиков сохранения сеанса. Я не знаю, правильно ли работает Codeigniter, но у меня есть сомнения. – Sven

ответ

1

Codeigniter фактически использует файлы cookie для своих сеансов, и вы устанавливаете время истечения срока действия в файле config.php. Я не совсем уверен, как долго он хранит фактическую информацию о базе данных (она не так уж и длинная), и она перезапишет новую запись для пользователя при входе в систему. Поэтому на самом деле не рекомендуется хранить критические данные в таблице сеансов которая не хранится в другом месте. Пока сохраняется их файл cookie, информация может быть восстановлена, но если они удаляют файл cookie, вы потеряете эти данные. Если вам нужно постоянно хранить что-либо на пользователе, не используйте таблицу сеансов.

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

Ответил 3 уже, не добавляйте в схему, создайте новую таблицу, если вам нужно сохранить больше информации.

Что касается 4, 5 и 6. Поскольку CI использует файлы cookie для своих сеансов, все, что вы храните в сеансе, является файлом cookie и будет там до истечения срока его действия, или пользователь удалит свои файлы cookie.

Сохранить Информация к сессии:

$this->session->set_userdata('some_key','some value for that key'); 

Получить его:

$data = $this->session->userdata('some_key'); 

Подробнее здесь: http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

+0

Спасибо, Рик. Теперь это намного яснее. Единственное, что я забыл просить в прошлый раз и то, что я также прочитал в приведенной выше ссылке. »« Уникальный идентификатор сеанса пользователя (это статистически случайная строка с очень сильной энтропией, хешированная MD5 для переносимости и регенерированная (по умолчанию) каждые пять минут). Таким образом, cookie обновляется автоматически после обновления таблицы сеанса.Разве идентификатор сеанса не остается постоянным во время входа пользователя в систему? ----- Также, как часто CI проверяет, совпадает ли идентификатор сеанса с идентификатором сеанса в cookie для аутентификации? – Sanjit

+0

Также, если вы могли бы привести меня к временным рамкам того, как часто обновляется таблица сеансов с помощью Codeigniter и как часто записывается cookie сеанса. Все, что я читал, это то, что данные cookie сеанса отправляются в заголовках http на каждом сеансе set_userdata, выданном из кода. Это единственный способ обновления файла cookie в клиентском браузере. – Sanjit

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