По умолчанию PHP сохраняет сеанс пользователя открытым, пока его браузер не будет закрыт. Вы можете переопределить это поведение, изменив параметр INI session.cookie-life:
Когда вы создаете сеанс в первый раз, используйте этот код, он установит время cookie на год (используйте ваше собственное время по мере необходимости).
ini_set('session.cookie_lifetime', 60 * 60 * 24 * 365);
ini_set('session.gc-maxlifetime', 60 * 60 * 24 * 365);
session_start();
Это должно установить cookie PHPSESSID, и ваш сеанс будет безопасным ... но это не самый безопасный способ, поэтому используйте его, если вы не против вопросов безопасности
Я бы также попробовал кое-что использовать с помощью session_set_cookie_parameters (), чтобы дать сессионному cookie ненулевое время жизни до начала сеанса, или установить для session.cookie_lifetime ненулевое значение.
я думаю, что самый простой способ для вас - это вместо того, чтобы просто session_start, мы должны вводить это на каждой странице, где есть сессия
$expire = 365*24*3600; // We choose a one year duration
ini_set('session.gc_maxlifetime', $expire);
session_start(); //We start the session
setcookie(session_name(),session_id(),time()+$expire);
//Set a session cookies to the one year duration