![]() |
Сколько действует переменная в сессии
Здравствуйте, вопрос может и глуповатый но все ж ответ на него для меня не очевиден..
если в скрипте php написать допустим такие строки по инициализации сессии : session_name("test"); session_start(); а после этого забросим в эту сессию какую ть переменную $peremennay = 1; session_register("peremennay"); то сколько будет зарегестрировано значение этой переменной?..пока я не закрою окно браузера?..а то я заметил такую вещь - если зайти на сайт и допустим несколько часов не закрывать его то значение которое по идее должно сохраниться( допустим таже $peremennay) просто пропадает и переменная становиться пустой... |
пол часа.
|
а разве это время самим не выставляется??
|
Php.ini(WIndows ессно)
; Lifetime in seconds of cookie or, if 0, until browser is restarted. session.cookie_lifetime = 0 по умолчанию, как раз стоит ноль - т.е. пока браузер не перезапуститься.... P.S. кста, в тему вопрос "ламера" как имзенять PHP.ini на хостинге?... если не использовать CPanel? |
Цитата:
Цитата:
|
mar
ок, учту.. |
Xcode
к учету :) - примеры докапывания до php из .htaccess: Код:
php_value include_path /somewhere/include:/somewhere/inc_path |
vadimiron, глупый вопрос - как выставлять время действия переменной в сессии?..
|
vagner_HATE
посмотрите (phpinfo()): session.cookie_lifetime session.gc_maxlifetime менять их значения можно, как уже говорилось, в php.ini и (если сервер допускает) в .htaccess через php_value |
Некоторые переменные можно также менять вызовом ini_set. Советуется обратить внимания на список (см. ссылку) переменных которые можно менять таким образом.
|
есть ещё session_set_cookie_params, и там первый параметр как раз время действия
|
Всем спасибо за помощь!..у меня возник еще один вопрос - как узнать что пользователь закрыл сессию? то бишь например закрыл браузер..как привязаться программно ( в смысле в php) к этому событию?..
|
вообще-то, чтобы не заморачиваться с постоянным опросом базы, можно просто послать что-нибудь себе на сервер JavaScript-ом по событию onClose
|
mar
а если браузер закроется "насильственно"?имхо, тогда событие OnClose - не сработает. И будет какой нить Вася Пупкин постоянным, пожизненным посетителем какого нибудь сайта каждые 24 часа, 60 минут и 60 секунд... |
Xcode
ну, это можно корректировать по времени последней сессии Васи Пупкина + 24 часа, 60 минут и 60 секунд :) |
И все таки вопрос - как сделать то что я хочу средствами php ?..
или только javascript'ом можно? |
Средствами PHP такое сделать нельзя (если не использовать timeout), потому как сервер не знает, закрыл пользователь сессию или нет...
|
Можно лишь держать время обновления сессии в базе и регулярно проходиться (cron) по данным скриптом - неактивность за сколько-то там минут говорит, о закрытии сессии. Если же посетитель ушел за пивом? Тогда нефиг... или пиво, или сайт. Компромис тут - увеличение времени жизни сессии.
|
Время: 05:42. |
Время: 05:42.
© OSzone.net 2001-