[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сессия не умирает
Страницы: 1, 2, 3
Иван444
Цитата (shmali @ 18.12.2013 - 16:26)
Цитата (Иван444 @ 17.12.2013 - 17:24)
Всем привет! Может кто знает, сталкивался, подскажите пожалуйста

Такая ситуация, когда сессии нет я её создаю. Назовем сессию Вася.
Потом перехожу на другую страницу и переписываю эту сессию, на Петю.

Насколько мне известно то по умолчанию сессия должна исчезнуть через 24 минуты или по закрытию браузера. 24 минуты не обновляю страницу, закрываю и открываю браузер, ничего не помогает. По идеи там должен быть Вася, но там оказывается Петя.

1. Ты создал сессию
2. Ты ее переписал
3 Ты ждешь что сессия которую ты переписал , осталась жить

Если ты переписал сессию , ее больше нету , теперь там вместо Васи лежит Петя , все . Васи там уже не будет никогда.

Я сейчас конечно почитаю и постараюсь со всем этим разобраться, что мне написал Киллер, а по поводу того , что Васи там уже не будет никогда, допустим если сессия умрет т.е. её больше не будет существовать, а значит по условию если её не существует то она создается как сессия Вася, вроде так ведь



Спасибо,что помогли разобраться, буду читать
shmali
Цитата (Иван444 @ 18.12.2013 - 13:18)
Цитата (shmali @ 18.12.2013 - 16:26)
Цитата (Иван444 @ 17.12.2013 - 17:24)
Всем привет! Может кто знает, сталкивался, подскажите пожалуйста

Такая ситуация, когда сессии нет я её создаю. Назовем сессию Вася.
Потом перехожу на другую страницу и переписываю эту сессию, на Петю.

Насколько мне известно то по умолчанию сессия должна исчезнуть через 24 минуты или по закрытию браузера. 24 минуты не обновляю страницу, закрываю и открываю браузер, ничего не помогает. По идеи там должен быть Вася, но там оказывается Петя.

1. Ты создал сессию
2. Ты ее переписал
3 Ты ждешь что сессия которую ты переписал , осталась жить

Если ты переписал сессию , ее больше нету , теперь там вместо Васи лежит Петя , все . Васи там уже не будет никогда.

Я сейчас конечно почитаю и постараюсь со всем этим разобраться, что мне написал Киллер, а по поводу того , что Васи там уже не будет никогда, допустим если сессия умрет т.е. её больше не будет существовать, а значит по условию если её не существует то она создается как сессия Вася, вроде так ведь



Спасибо,что помогли разобраться, буду читать

У каждой Сессии есть ID и он уникален.
Васи уже не будет , будет новая сессия.
Иван444
Цитата (shmali @ 18.12.2013 - 17:26)
Цитата (Иван444 @ 18.12.2013 - 13:18)
Цитата (shmali @ 18.12.2013 - 16:26)
Цитата (Иван444 @ 17.12.2013 - 17:24)
Всем привет! Может кто знает, сталкивался, подскажите пожалуйста

Такая ситуация, когда сессии нет я её создаю. Назовем сессию Вася.
Потом перехожу на другую страницу и переписываю эту сессию, на Петю.

Насколько мне известно то по умолчанию сессия должна исчезнуть через 24 минуты или по закрытию браузера. 24 минуты не обновляю страницу, закрываю и открываю браузер, ничего не помогает. По идеи там должен быть Вася, но там оказывается Петя.

1. Ты создал сессию
2. Ты ее переписал
3 Ты ждешь что сессия которую ты переписал , осталась жить

Если ты переписал сессию , ее больше нету , теперь там вместо Васи лежит Петя , все . Васи там уже не будет никогда.

Я сейчас конечно почитаю и постараюсь со всем этим разобраться, что мне написал Киллер, а по поводу того , что Васи там уже не будет никогда, допустим если сессия умрет т.е. её больше не будет существовать, а значит по условию если её не существует то она создается как сессия Вася, вроде так ведь



Спасибо,что помогли разобраться, буду читать

У каждой Сессии есть ID и он уникален.
Васи уже не будет , будет новая сессия.

Будет новая сессия и там будет Вася, правильно?
Aeq
Цитата (Иван444 @ 18.12.2013 - 15:23)
Цитата (Aeq @ 18.12.2013 - 08:54)
Проверка с isset работает быстрее собаки. Банальным тестом проверяется легко. Дефолтный механизм сессий не дает гарантий что сессия убьется строго по времени, а всего лишь сообщает сборщику мусора что ее можно убить через это время

Точно приточно isset будет быстрее работать? Там ведь вон какой длинный код получается

if(isset(условие)){
вывод
}



А тут просто

@вывод 

проверял
echo isset($boo['foo']) ? $boo['foo'] : '';

против
echo @$boo['foo'];


вообще мне самому больше импонирует запись с собакой, но реальность такова что обработка ошибки в текущей реализации пхп длится дольше чем просто проверка isset :)

проверьте сами. долго ли скриптец с двумя циклами и microtime накидать?
shmali
Не знаю ребят почему вам импонирует подавление ошибок вместо их предотвращения.

Цитата из Дока php.net
Цитата
На сегодняшний день оператор "@" подавляет вывод сообщений даже о критических ошибках, прерывающих работу скрипта. Помимо всего прочего, это означает, что если вы использовали "@" для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.
paul85
Интересно, что же людей заставляет использовать денвер? Неужели только то, что он русский?
inpost
paul85
Легок и быстр в установке. Почему нет?
Я нажатием мыши 2 раза устанавливаю Денвер а дальше занимаюсь своими собственными делами, к примеру пишу код. А ты не так поступаешь?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
inpost
shmali
if(file_exists($link)) unlink($link);
@unlink($link);

if(isset($var)) echo $var;
echo @$var;


С geoip так ещё больше гемороя.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Aeq
Цитата (shmali @ 18.12.2013 - 18:29)
Не знаю ребят почему вам импонирует подавление ошибок вместо их предотвращения.

Цитата из Дока php.net
Цитата
На сегодняшний день оператор "@" подавляет вывод сообщений даже о критических ошибках, прерывающих работу скрипта. Помимо всего прочего, это означает, что если вы использовали "@" для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.

вот не надо вырывать фраз из контекста.

речь идет о конкретном случае вывода переменной если она не существует

<?= @$foo ?>

и
<?= isset($foo) ? $foo : null ?>


а также при обращении к элементу массива по константе-ключу (обращаю внимание - именно по константе а не переменной)

<?= @$foo['bar'] ?>

и
<?= issset($foo['bar']) ? $foo['bar'] : null ?>


эти пары конструкций абсолютно идентичны в плане вывода, но вариант с собакой внутрях пхпа делает больше некоторых внутренних действий для генерации ошибки и ее подавления. Вариант с собакой (или без нее, просто вывод несуществующей переменной) генерируют нойтис и возвращаемое значение будет null. Никакой неоднозначности поведения кода нет. Очень хотелось бы чтоб конкретно эти случаи внутрях пхпа оптимизировали чтоб работало с той же скоростью что и вариант с isset.

Вообще сейчас в черновиках к будущим версиям предлагается следующая конструкция (https://wiki.php.net/rfc/isset-set-operator):
<?= $foo ??: 'default_value' ?>

в отличие от уже существующего
<?= $foo ?: 'default_value' ?>

новый вариант производит проверку isset и не сгенерирует нойтис если переменная не существует.
Такой вариант с установкой дефолтного значения будет конечно весьма удобен, но чаще всего в качестве дефолтного значения подходит именно null, и запись с собакой была бы в этом смысле весьма интуитивной и к месту, и не нужно было бы нового синтаксиса городить. Т.е. собаку применительно к переменной интерпретировать не как подавление ошибки, а именно как проверку isset. Если бы это реализовали, то никаких проблем с обратной совместимостью не было бы, а черновой вариант нового синтаксиса пошел бы лесом, т.к. свелся бы к настолько же компактному следующему:
<?= @$foo ?: 'default_value' ?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.