Показать полную графическую версию : Сколько действует переменная в сессии
vagner_HATE
31-08-2005, 17:39
Здравствуйте, вопрос может и глуповатый но все ж ответ на него для меня не очевиден..
если в скрипте php написать допустим такие строки по инициализации сессии :
session_name("test");
session_start();
а после этого забросим в эту сессию какую ть переменную
$peremennay = 1;
session_register("peremennay");
то сколько будет зарегестрировано значение этой переменной?..пока я не закрою окно браузера?..а то я заметил такую вещь - если зайти на сайт и допустим несколько часов не закрывать его то значение которое по идее должно сохраниться( допустим таже $peremennay) просто пропадает и переменная становиться пустой...
vadimiron
31-08-2005, 19:21
а разве это время самим не выставляется??
Php.ini(WIndows ессно)
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0
по умолчанию, как раз стоит ноль - т.е. пока браузер не перезапуститься....
P.S. кста, в тему вопрос "ламера" как имзенять PHP.ini на хостинге?... если не использовать CPanel?
Php.ini(WIndows ессно)
php.ini - может работать для всех ос, но только название - маленькими буквами :)
как имзенять PHP.ini на хостинге
некоторые переменные длоступны через .htaccess , но только в том случае, если это разрешено настройками сервера
Xcode
к учету :) - примеры докапывания до php из .htaccess:
php_value include_path /somewhere/include:/somewhere/inc_path
php_value auto_prepend_file /usr/home/me/qq.inc
php_flag register_globals off
vagner_HATE
31-08-2005, 23:42
vadimiron (javascript:PrintUserName('vadimiron')), глупый вопрос - как выставлять время действия переменной в сессии?..
vagner_HATE
посмотрите (phpinfo()):
session.cookie_lifetime
session.gc_maxlifetime
менять их значения можно, как уже говорилось, в php.ini и (если сервер допускает) в .htaccess через php_value
Prisoner
01-09-2005, 09:44
Некоторые переменные можно также менять вызовом ini_set (http://php.rinet.ru/manual/ru/function.ini-set.php). Советуется обратить внимания на список (см. ссылку) переменных которые можно менять таким образом.
vadimiron
01-09-2005, 14:07
есть ещё session_set_cookie_params, и там первый параметр как раз время действия
vagner_HATE
02-09-2005, 13:51
Всем спасибо за помощь!..у меня возник еще один вопрос - как узнать что пользователь закрыл сессию? то бишь например закрыл браузер..как привязаться программно ( в смысле в php) к этому событию?..
вообще-то, чтобы не заморачиваться с постоянным опросом базы, можно просто послать что-нибудь себе на сервер JavaScript-ом по событию onClose
mar
а если браузер закроется "насильственно"?имхо, тогда событие OnClose - не сработает. И будет какой нить Вася Пупкин постоянным, пожизненным посетителем какого нибудь сайта каждые 24 часа, 60 минут и 60 секунд...
Xcode
ну, это можно корректировать по времени последней сессии Васи Пупкина + 24 часа, 60 минут и 60 секунд :)
vagner_HATE
08-09-2005, 00:17
И все таки вопрос - как сделать то что я хочу средствами php ?..
или только javascript'ом можно?
Средствами PHP такое сделать нельзя (если не использовать timeout), потому как сервер не знает, закрыл пользователь сессию или нет...
Prisoner
13-09-2005, 15:17
Можно лишь держать время обновления сессии в базе и регулярно проходиться (cron) по данным скриптом - неактивность за сколько-то там минут говорит, о закрытии сессии. Если же посетитель ушел за пивом? Тогда нефиг... или пиво, или сайт. Компромис тут - увеличение времени жизни сессии.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.