Войти

Показать полную графическую версию : Сколько действует переменная в сессии


vagner_HATE
31-08-2005, 17:39
Здравствуйте, вопрос может и глуповатый но все ж ответ на него для меня не очевиден..

если в скрипте php написать допустим такие строки по инициализации сессии :

session_name("test");
session_start();

а после этого забросим в эту сессию какую ть переменную

$peremennay = 1;
session_register("peremennay");

то сколько будет зарегестрировано значение этой переменной?..пока я не закрою окно браузера?..а то я заметил такую вещь - если зайти на сайт и допустим несколько часов не закрывать его то значение которое по идее должно сохраниться( допустим таже $peremennay) просто пропадает и переменная становиться пустой...

slaine
31-08-2005, 18:04
пол часа.

vadimiron
31-08-2005, 19:21
а разве это время самим не выставляется??

XCodeR
31-08-2005, 20: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?

mar
31-08-2005, 22:12
Php.ini(WIndows ессно)
php.ini - может работать для всех ос, но только название - маленькими буквами :)
как имзенять PHP.ini на хостинге
некоторые переменные длоступны через .htaccess , но только в том случае, если это разрешено настройками сервера

XCodeR
31-08-2005, 22:22
mar
ок, учту..

mar
31-08-2005, 22:25
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')), глупый вопрос - как выставлять время действия переменной в сессии?..

mar
01-09-2005, 01:02
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) к этому событию?..

mar
02-09-2005, 16:47
вообще-то, чтобы не заморачиваться с постоянным опросом базы, можно просто послать что-нибудь себе на сервер JavaScript-ом по событию onClose

XCodeR
02-09-2005, 17:57
mar
а если браузер закроется "насильственно"?имхо, тогда событие OnClose - не сработает. И будет какой нить Вася Пупкин постоянным, пожизненным посетителем какого нибудь сайта каждые 24 часа, 60 минут и 60 секунд...

mar
02-09-2005, 22:53
Xcode
ну, это можно корректировать по времени последней сессии Васи Пупкина + 24 часа, 60 минут и 60 секунд :)

vagner_HATE
08-09-2005, 00:17
И все таки вопрос - как сделать то что я хочу средствами php ?..
или только javascript'ом можно?

archy
12-09-2005, 14:53
Средствами PHP такое сделать нельзя (если не использовать timeout), потому как сервер не знает, закрыл пользователь сессию или нет...

Prisoner
13-09-2005, 15:17
Можно лишь держать время обновления сессии в базе и регулярно проходиться (cron) по данным скриптом - неактивность за сколько-то там минут говорит, о закрытии сессии. Если же посетитель ушел за пивом? Тогда нефиг... или пиво, или сайт. Компромис тут - увеличение времени жизни сессии.




© OSzone.net 2001-2012