Я пытаюсь сделать мои сеансы регистрации более длительными, так что люди не выходят из моего сайта слишком рано. Например, создавая сообщение в блоге и теряя его, когда они отправляются, потому что php истек их cookie.
В идеале я хотел бы дать им сказать 2-часовую сессию, где они не будут выходить из системы, которые будут обновляться каждый раз при загрузке страницы (этот фрагмент кода ниже перед заголовком каждой защищенной страницы)
Это то, что я пытаюсь, но возникает ошибка для setcookie (), говорящего, что было деление на ноль? Что я здесь делаю неправильно?
//How long sessions last $hours = 2; // php.ini setting required for session timeout. ini_set('session.gc_maxlifetime',$hours*60*60); ini_set('session.gc_probability',1); ini_set('session.gc_divisor',1); //Set the session parameters and start session $sessionCookieExpireTime=$hours*60*60; session_set_cookie_params($sessionCookieExpireTime); session_start(); // Reset the expiration time upon page load if (isset($_COOKIE[session_name()])) { setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, "/"); }
EDIT: В настоящее время проблемой является нестандартные кавычки и апострофы. На всякий случай кто-то копирует этот код и использует его. Код выше работает сейчас спасибо!
Если вы хотите, чтобы вы могли добавить это, когда срок действия вашего файла cookie истекает:
time()+60*60*24*30
Это похоже на то, что файл cookie истекает через 60 секунд, 60 минут, 24 часа и так далее. Вы также должны ознакомиться с учебником по куки-файлам здесь: http://www.w3schools.com/php/php_cookies.asp