Всем привет! Использую пример: Код (PHP): <? session_start(); if (!isset($_SESSION['counter'])) $_SESSION['counter']=0; echo "refresh ".$_SESSION['counter']++." value. "; echo "<br><a href=".$_SERVER['PHP_SELF'].">refresh"; ?> Все работает как задумано. Но после закрытия-открытия браузера счетчик сбрасывается (кроме хрома). И понятно почему, время жизни установлено "До закрытия браузера". Как изменить время жизни сессии, например, до месяца?
над мне тоже переходить на сеткуки ибо заколебало день держаться сессия а потом офф Добавлено спустя 1 минуту 12 секунд: благодарю
Только это не панацея. По хорошему нужно юзать куки. При логине, если юзер установил галку "запомнить", генерим токен, пишем в базу. При заходе если сессия умерла достаем по токену юзера и заново логинем. Это так, вкратце.
неправильно тут советовали. время жизни сессии с точки зрения пользователя это время жизни сессионной куки. настраивается через http://php.ru/manual/function.session-set-cookie-params.html естественно должно вызываться ДО session_start() Добавлено спустя 1 минуту 50 секунд: session.gc_maxlifetime и еще некоторые параметры управляют garbage collection - подчисткой устаревших сессионных файлов.
Если сессионный файл будет удален, то уже смысла во времени жизни куки, в которой хранится session id нет.
он не будет удален, если шаловливые ручки не будут что-то непотребное делать не надо теории разводить. пробуйте, получайте опыт.
Спасибо опыта достаточно Сам не пробовал, но в документации ясно сказано, что файл сессии хранится 1440 секунд бездействия и после удаляется. Сам я делаю сохранение авторизации совсем другим образом, который описал выше. Я считаю его более правильным. Т.к. если хранить файлы сессий годами для всех пользователей можно огрести большие тормоза, когда в директории их окажется сотни тысяч. Сессия она на то и сессия, чтобы создаваться на короткий отрезок времени.
на заборе тоже написано. только во первых "бездействия", т.е. при реальной, а не сферической-в-вакууме деятельности, если к файлу постоянно открывается доступ, то этот интервал не наступает. во вторых сборка мусора вызывается с некоторой вероятностью. то есть редко. конечно если буквально на месяц уйти, то вероятно файл будет удален. но что это б* за сессия длиной в месяц! теперь подумаем что дает ini_set("session.gc_maxlifetime", $Lifetime); оно влияет на сборку мусора в этом конкретном запросе. если на сайте (а может и на всем сервере, it depends) есть скрипты, которые НЕ вызывают эту штуку, но стартуют сессии, то у них lifetime будет по умолчанию и они твои файлики будут чистить. то есть нихрена не поменялось. править так уж в php.ini вот это верно
т.е. стандартный механизм авторизации не приспособлен для использования и всю логику нужно писать самому используя куки?
да, наверное я лучше всех разбираюсь в похапе. сессии приспособлены, и всё делают правильно. Мало ли кто побежит к твоему компу после закрытия браузера, и полезет на политические форумы писать "Власть говно на трубе сидит" и "освободите навального" от вашего имени. Вот чтобы такого не было - придумано "до закрытия браузера". Очень удобно. и поэтому сессии приспособлены для авторизации, а не для того, чтобы "запомнить меня на этом компьютере": галочка, куки...
чей стандарт? ))) приведите примеры, пожалуйста. igordata, ты подменяешь понятия. кука-со-временем-жизни-до-закрытия-браузера !== сессионная кука. по мне так сессия должна жить строго до закрытия браузера, а идентификационная кука как пользователь пожелает -- просигналит "галочкой".
А он тут и не нужен, хватает сессий и кук. Куки бес-пантовый вариант для хранения пользовательских данных (как не публичных так и некоторых публичных). Это может оказаться критично, если там "не перемудрить с какими-нибудь шифровками, обманом зрения". Пример возьмем вирус, дальше не подлежит объяснению, суть уясните сами... С одной стороны, не наши проблемы, а с другой стороны безопасность своих же пользователей. К тому-же, собственно сессия живет и уже не живет, а значит пользователь свалил и ему тут делать больше нечего, а значит нужно все подчистить. Зайдет "милости просим"... Хотя и тут, "Бида, Бида", можно же вирус написать и по отлову полей. А вот-это уже аргументик, так аргументик. Вы главное, проверяйте, то, что приходит от пользователей.