Intereting Posts
phag pagination для результата поиска, который не отображается Как безопасный вход в систему для входа в Dreamweaver PHP? Как передать значение атрибута объекта для формирования Symfony2? Помогите мне преобразовать этот код SOAP PHP в C # Пользовательский шаблон таксономии по умолчанию не выбран Echo не показывает скопированный текст из txt-файла для формирования текстовой области PHP Как получить запрос `$ _POST`, когда 404 перенаправляется через .htaccess? Что такое пространство имен и как оно реализовано в PHP? Laravel RoleMiddleware, роль класса не найдена Вывод хеширования hmac PHP и Java соответствует шестнадцатеричному, не соответствует в двоичном формате. Что происходит? Как я могу поместить содержимое страницы CMS в статический блок? Zend Application из подкаталога, в котором правильны ссылки на Zend Когда использовать filter_input () Доступная публичная функция в Laravel 4 Не удается найти файл, созданный outfile в MySQL

Как установить время жизни сеанса

Как установить время жизни сеанса в PHP? Я хочу установить его навсегда, пока запрос существует. Запрос – AJAX. Мой PHP-код, который обрабатывает запрос AJAX:

// AJAX.php <?php session_start(); $_SESSION['counter'] = $_SESSION['counter'] + 1; header('Content-type: application/json'); echo json_encode(array('tick' => $_SESSION['counter'])); ?> 

и JavaScript:

 $(document).ready(function() { function check() { getJSON('ajax.php'); } function getJSON(url) { return $.getJSON( url, function(data) { $("#ticker").html(data.tick); } ); } setInterval(function() { check(); }, 10000); // Tick every 10 seconds }); 

Сессия всегда сбрасывается через 300 секунд.

Related of "Как установить время жизни сеанса"

Сессии на PHP работают с сеансом типа Cookie, а на стороне сервера информация о сеансе постоянно удаляется.

Для установки времени жизни в php вы можете использовать функцию session_set_cookie_params перед session_start:

 session_set_cookie_params(3600,"/"); session_start(); 

Например, 3600 секунд – один час, в течение 2 часов 3600 * 2 = 7200.

Но это сеансовый cookie, браузер может истечь сам, если вы хотите сохранить большие сеансы (например, запомнить логин), вам нужно сохранить данные на сервере и стандартный файл cookie на стороне клиента.

У вас может быть таблица «Сессии»:

  • session_id int
  • session_hash varchar (20)
  • текст session_data

При проверке Cookie вы сохраняете «идентификатор сеанса» и «хэш» (для обеспечения безопасности) на стороне клиента, и вы можете сохранить данные сеанса на стороне сервера, например:

При входе в систему:

 setcookie('sessid', $sessionid, 604800); // One week or seven days setcookie('sesshash', $sessionhash, 604800); // One week or seven days // And save the session data: saveSessionData($sessionid, $sessionhash, serialize($_SESSION)); // saveSessionData is your function 

Если пользователь возвращает:

 if (isset($_COOKIE['sessid'])) { if (valide_session($_COOKIE['sessid'], $_COOKIE['sesshash'])) { $_SESSION = unserialize(get_session_data($_COOKIE['sessid'])); } else { // Dont validate the hash, possible session falsification } } 

Очевидно, что перед отправкой данных сохраняйте все сеансы / файлы cookie.

Задайте следующие параметры php для одного и того же значения в секундах:

 session.cookie_lifetime session.gc_maxlifetime 

в php.ini, .htaccess или, например, с помощью

 ini_set('session.cookie_lifetime', 86400); ini_set('session.gc_maxlifetime', 86400); 

на день.

Ссылки:

http://www.php.net/manual/en/session.configuration.php

http://www.php.net/manual/en/function.ini-set.php

Сессии можно настроить в файле php.ini или в файле .htaccess. Посмотрите документацию по сеансу PHP .

То, что вы в основном хотите сделать, это найти строку session.cookie_lifetime в php.ini и сделать ее значением 0, чтобы файл cookie сессии был действителен до закрытия браузера. Если вы не можете редактировать этот файл, вы можете добавить php_value session.cookie_lifetime 0 в ваш .htaccess файл.

Пока Пользователь не удаляет свои файлы cookie или не закрывает свой браузер, сеанс должен оставаться на месте.