dumber
Постоялец
- Регистрация
- 23 Апр 2007
- Сообщения
- 272
- Реакции
- 124
- Автор темы
- #1
Наткнулся на следующую фичу.
Код открывал класс сессии в котором при конструкции
запускался session_start();
брался через session_id() идентификатор + другие даные юзера. Все это затем через внутренню функцию класса записывалось в БД, причем идет проверка на уже наличие в БД записи с таким же UID (возвращается session_id()) все вроде бы нормально. В Осле и Лисе схема рабоатет без лагов, а вот в опере. Каким то волшебным образом конструкция класса вызывалась дважды, причем 1ый раз с нормальнным id сессии, второй раз с другим и постоянно меняющимся. Причем исполняем код не выводил ничего (я пробовал через echo показывать что должно вписываться в базу, все отображалось из первого запроса, второй просто игнорировался) в итоге в БД сессий при каждом обновлении страницы - обновлялась запись текущей сессии с ID ***** и еще добавлялась одна сессия с другим ID. В Лисе и Осле повторений нет. Удивило...
Чтобы не записывались эти ненужные и нечитаемые самим же браузером сессии. Пришлось при конструкции класса созданный session_id помещать в cookies и затем при добавлении в БД проверять на соответствие текущей ID сессии на ID из кукисов.
Так что это было?
Код открывал класс сессии в котором при конструкции
запускался session_start();
брался через session_id() идентификатор + другие даные юзера. Все это затем через внутренню функцию класса записывалось в БД, причем идет проверка на уже наличие в БД записи с таким же UID (возвращается session_id()) все вроде бы нормально. В Осле и Лисе схема рабоатет без лагов, а вот в опере. Каким то волшебным образом конструкция класса вызывалась дважды, причем 1ый раз с нормальнным id сессии, второй раз с другим и постоянно меняющимся. Причем исполняем код не выводил ничего (я пробовал через echo показывать что должно вписываться в базу, все отображалось из первого запроса, второй просто игнорировался) в итоге в БД сессий при каждом обновлении страницы - обновлялась запись текущей сессии с ID ***** и еще добавлялась одна сессия с другим ID. В Лисе и Осле повторений нет. Удивило...
Чтобы не записывались эти ненужные и нечитаемые самим же браузером сессии. Пришлось при конструкции класса созданный session_id помещать в cookies и затем при добавлении в БД проверять на соответствие текущей ID сессии на ID из кукисов.
Так что это было?