Страницы: 1
Ситуация следующая...
Есть сайт написанный под Опера+ИЕ... Появилась необходимость этот сайт заточить ещё и под ФФ, ну проблем хватает конечно же .
Ситуация:
На сайте используется механизм сессий (PHP под Apache) сессия открывается и передается всегда через session_start();
Естественно при первом входе ФФ получает номер сесси.
НО при дальнейшем браузинге (первая же ссылка) ФФ открывает ДВА! соединения и при этом первое получает один номер сессии (старый-правильный) а второе соединение (новый номер) ответ в браузер приходит только на второе соединение но соединение ведь ошибочное соответственно в ответ приходит сообщение об ошибке.
Вопрос:
Что необходимо сделать?
Когдато читал про многопоточные запросы которые мозилла делает (или будет делать... давно было) для получения информации.. Это они?
Обращаюсь сюда т.к. практически весь свой арсенал знаний применил, но ничего не помогает.
Отсутствует
Подробности:
ФФ при клике мышой как положено лезет на сайт там на сайте стоит функция session_regenerate_id();...
Далее ФФ создаёт второе соединение (примерная разнца результат time(): 1149149889-->1149149892) - это второе соединение идёт уже с новым id или даже с третьим и в итоге получается ситуация что второй запрос не получает данные из сессии и из-за этого естественно ошибка при проверке сессионных значений.
Если закоментить регенерейт то всё работает как часы.
Зато со второй ошибкой всё похлеще... На сайте снимается время последнего доступа и есть ограничение на время между двумя доступами, так вот из-за того что идут подряд два запроса тут ВСЕГДА ошибка при проверке таймаута.
Может есть возможность в файрфоксе отключить это дублирование запроса?
Отсутствует
Ехххх.... Ещё продолжу данную тему, бо всёже хочу разобраться что-же происходит
Вот обмен хидерами между клиентом и сервером:
(прошу отметить: был всего-лишь один клик мышкой)
http://sp/?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZmMwNjRmZmY0NzRkZDUyZGRiYjQ3MjhlYjNmZmVmM2E%3D
GET /?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZmMwNjRmZmY0NzRkZDUyZGRiYjQ3MjhlYjNmZmVmM2E%3D HTTP/1.1
Host: sp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://sp/?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZWQwMjE4ZjE2ODFkMzM2YmUxZTY0NGY4OTdlMzk0NTU%3D
Cookie: PHPSESSID=86a853a2e051e4c80e307f5252f6c89dHTTP/1.x 200 OK
Date: Tue, 06 Jun 2006 10:36:46 GMT
Server: Apache/2.0.54 (Win32)
X-Powered-By: PHP/5.0.4
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=86a853a2e051e4c80e307f5252f6c89d; path=/
Set-Cookie: PHPSESSID=b801e407e2e5f82291998df5a7d10b1e; path=/
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
----------------------------------------------------------
http://sp/?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZmMwNjRmZmY0NzRkZDUyZGRiYjQ3MjhlYjNmZmVmM2E%3DGET /?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZmMwNjRmZmY0NzRkZDUyZGRiYjQ3MjhlYjNmZmVmM2E%3D HTTP/1.1
Host: sp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://sp/?AID=QWN0aW9uPXdvcmsmV29ya1BhZ2U9ZWQwMjE4ZjE2ODFkMzM2YmUxZTY0NGY4OTdlMzk0NTU%3D
Cookie: PHPSESSID=b801e407e2e5f82291998df5a7d10b1eHTTP/1.x 200 OK
Date: Tue, 06 Jun 2006 10:36:46 GMT
Server: Apache/2.0.54 (Win32)
X-Powered-By: PHP/5.0.4
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=b801e407e2e5f82291998df5a7d10b1e; path=/
Set-Cookie: PHPSESSID=d28fb2b6cf8d235610d29419635a1e40; path=/
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
----------------------------------------------------------
Я незахотел сразу постить такой большой текст, но может он натолкнёт что же творится.
На расширения у меня сразу не было нареканий.. я вообще стандартно поставил инсталл и всё.. уже после (чтобы проблему обнаружить) поставил LiveHttpheader
Я всётаки осмелюсь ещё раз переспросить.. Давненько читал такую тему что мозилла для ускорения работы пытается получать страницу в несколько потоков... Может быть это оно?
Отсутствует
PHP устанавливает глобальную переменную session с помощью кук на клиенте (Реализация скрыта и осуществляется автоматом) Как видим из ваших хидеров
Set-Cookie: PHPSESSID=b801e407e2e5f82291998df5a7d10b1e; path=/
Set-Cookie: PHPSESSID=d28fb2b6cf8d235610d29419635a1e40; path=/
с сервера установлены две переменные сразу (причём послядняя перегружает первую) - здесь, видимо, и зарыт проблем. Как мне кажется. Файрфокс тут не причём или совсем не причём. Надо посмотреть в настройках сервера почему сетится на запрос из-под файрфоксины так странно. Во всяком случае надо поиграть настройками (апача - пхп) и прогнать в живую. Дистанционно судить - о конкретной причине такого замешательства - (мне) трудновато
Отсутствует
Дважды устанавливается кука специально и это сделано в моём скрипте.
Почему? оч просто сперва сессион старт потом кое какие проверки и после регенерейт сессион ИД. Так-что тут проблемы нет. Если убрать регенерейт сессион ИД то кука устанавливается только раз.
А запрос тем не менее идёт дважды.
По поводу дистанционности оно понятно, все посты тут лишь для того чтобы определить есть ли какие либо подобные проблемы у других
Отсутствует
Единственное что выщемил так это то что виноват xAjax.... При отключении xAjax.js дублирование прекращается. Решения ещё не нашел...
Сделал кучу обходных маневров.... чтобы у меня всё заработало...
НА форуме xAjax меня проигнорировали... Но возможно из-за моего инглиша :\
Вобщем проблемой сильно не занимался... отложил её на потом....
Отсутствует
Страницы: 1