PHP сессии на более длительный период - PullRequest
0 голосов
/ 08 апреля 2019

Попытка сохранить сеансы PHP в течение 12 часов.

<?php

#required files

ini_set('session.cookie_lifetime', 60 * 60 * 12);
ini_set('session.gc-maxlifetime', 60 * 60 * 12 );
session_start();
$_SESSION['site_type'] = "2";

#more codes
?>

Но сессии продолжаются только несколько минут.


Помните: Сессия должна быть живой, даже если

  • Вкладка закрыта
  • Браузер закрыт
  • Браузер очищается из последней вкладки (При открытии в мобильном браузере)

Ответы [ 3 ]

0 голосов
/ 08 апреля 2019

session.gc-maxlifetime всегда выше, чем cookie_lifetime:

После использования как:

ini_set('session.cookie_lifetime', 43200); // 43200 == 12 hours
ini_set('session.gc-maxlifetime', 100000);

После изменения этого значения вы можете проверить, используя:

echo phpinfo(); // search both values

Примечание:

Изменение значения конфигурации с помощью скрипта всегда проблематично, я предлагаю вам изменить значения из файла PHP.ini как:

; 12 hour session cookie
session.cookie_lifetime = 43200
session.gc_maxlifetime = 100000 

in PHP.ini ,

session.cookie_lifetime всегда устанавливается в 0, что означает, что сеанс уничтожен при закрытии браузера.

session.gc_maxlifetime - время жизни в секундах, котороезначение по умолчанию: 1440 = 24 minutes

0 голосов
/ 10 апреля 2019

Если вы не можете изменить продолжительность сеанса с помощью ini_set, то вы можете рассмотреть другую идею: если вы можете запустить PHP версии 7 или лучше, вы можете использовать этот подход :

  if (session_status() == PHP_SESSION_NONE) {
    if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
      session_start(['cookie_lifetime' => 43200,]);
    } else {
      session_start();
    }
  }

Таким образом, сеанс истекает только через 12 часов.Надеюсь, это поможет.

0 голосов
/ 08 апреля 2019

Вы можете использовать Cookies для достижения этого путем сохранения массива сеансов в куки и извлечения его при загрузке страницы или сохранения данных сеанса в базе данных на сервере, назначения их с ключом и использования этого ключа в Cookie

...