PHP дважды выполняется в Google Chrome

12
Busgame
На сайте с 10.07.2011
Offline
24
5302

Добрый день, уважаемые форумчане. Проблема: скрипт записи в БД выполняется два раза при. Это наблюдается только при обращении из Google Chrome, в других браузерах все нормально. Так происходит со всеми php - скриптами, где происходит подсчет чего-либо или запись в БД. Логи апача и Гугл говорят, что проблема в параллельном запросе к favicon.

Пробовал занести такую запись в .htacces (лежит в папке с скриптом):

RewriteEngine On


RewriteRule ^(img|css|js|ico)($|/) - [L]

Не помогло.

Также, в этой папке находится и favicon.ico.

Прошу помочь, если не сложно, составить правильный htacces, так как сам не силен в нем, да и мануала на русском нигде не нашел. Извините, если это уже обсуждалось, поиск не дал результатов.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Вообще по уму так:

RewriteRule !^(index\.php|css/.*|js/.*|images/.*)$ /index.php/$1 [L] #мое основное ЧПУ правило

То есть: если запрос НЕ:

1) www.site.ru/index.php - это у меня разруливатель.

2) www.site.ru/css/ВсеЧтоУгодно.ВЧУ - в этой папке лежат стили

3) www.site.ru/js/ВсеЧтоУгодно.ВЧУ - здесь лежат джаваСкрипт файлы

4) www.site.ru/images/ВсеЧтоУгодно.ВЧУ - здесь изображения,

То включаем преобразование ЧПУ ссылок через мод реврайт.

Если же запрошен один из 4 пунктов - проходим мимо ниче не преобразовывая.

Если не поможет, то в студию все HTACCESSы и код, где 2 раза вызывается ваш ПХП только хромом:)

Подпись))
SeVlad
На сайте с 03.11.2008
Offline
1609
#2
Busgame:
Проблема: скрипт записи в БД выполняется два раза при. Это наблюдается только при обращении из Google Chrome,

Была такая тема с неделю-две назад. Если не ошибаюсь - виноваты какие-то бары в хроме. Проверь без аддонов.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
IL
На сайте с 20.04.2007
Offline
435
#3
Busgame:
RewriteRule ^(img|css|js|ico)($|/) - [L]

Busgame, favicon.ico не подходит под это правило. Что если такое добавить?

RewriteRule \.ico$ -[L]

p.s.

Busgame:
да и мануала на русском нигде не нашел

http://www.htaccess.net.ru/doc/mod_rewrite/RewriteRule.php

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Busgame
На сайте с 10.07.2011
Offline
24
#4

Милованов Ю.С, собственно в htaccess только "AddDefaultCharset UTF-8" находился. Чтобы устранить ошибку записывал те две строки из первого топика, затем удалил свои строки и добавил вашу - также не работает.

Код, который выполняется два раза:


--- старт сессии ---
--- конкретный путь к фавиконке ---

mysql_query("UPDATE regs SET history = CONCAT('$_GET[id],', history) WHERE login = '$_SESSION[namein]'") or exit(mysql_error());

--- остальной код (другие обращения, не имеющие отношения к верхнему, там даже таблицы другие совсем) ---

Выше запроса находится редирект (header) на эту же страницу но там с условием, которое не выполняется (даже удалив строки редиректа, проблема остается).

SeVlad, в том то и дело, что не работает только с гугл хромом (с обычной его версией). Есть режим "Инкогнито", который не сохраняет куки, в нем все также ок.

ivan-lev, при таком htacces:

AddDefaultCharset UTF-8

RewriteEngine On
RewriteRule \.ico$ -[L]

Проблема остается.

IL
На сайте с 20.04.2007
Offline
435
#5
Busgame:
скрипт записи в БД выполняется два раза

А когда он вообще выполняется - в смысле, при каких условиях? Что при этом лежит в $_SERVER['REQUEST_URI']? Вообще в $_SERVER нет ли чего такого, что позволило бы разделить запросы?

Busgame
На сайте с 10.07.2011
Offline
24
#6

Запрос отправляется при заходе на страницу. То есть, человек зашел, значение занеслось в БД.

В $_SERVER['REQUEST_URI'] лежит GET запрос, параметр которого и заносится в БД.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#7

ТС, вставьте код в файл:


<?php
file_put_contents('doubleRequest.txt', print_r($_SERVER, 1) ."\r\n\r\n", FILE_APPEND)
?>

Обратитесь 1 раз к своему скрипту через хром, а потом файл doubleRequest.txt из той директории где лежит скрипт выложите сюда, мы глянем на него:)

skAmZ
На сайте с 04.09.2009
Offline
122
#8
Милованов Ю.С:
Обратитесь 1 раз к своему скрипту через хром, а потом файл doubleRequest.txt из той директории где лежит скрипт выложите сюда, мы глянем на него

Была аналогичная проблема. Смотрел через локальный прокси сервер: при обращении выполняет 2 обращения полностью идентичные (уже не помню последовательно или параллельно).

Проблема как появилась, так и исчезла - неведомо как :)

P.S. у меня было с POST формы. Скрипт был тестовый, строк на 20 от силы :)

Busgame
На сайте с 10.07.2011
Offline
24
#9

Вот файл, оригинальные названия заменил на path, papka и file.php, смысл от этого абсолютно не меняется.

txt doubleRequest.txt
Busgame
На сайте с 10.07.2011
Offline
24
#10

Поправил файл doubleRequest.txt вроде бы все правильно

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий