Помогите не свихнуться.... [РЕШЕНО]
Posted: Tue Mar 01, 2011 8:27 pm
Проблема:
CMSMS 1.9.1. Установлена на нескольких хостах (и куча копий на локали). Все было нормально до сегодняшнего дня, когда один из клиентов сообщил, что не может пользоваться менеджером файлов в КМС - он кликает по имени папки, но вместо того чтобы отобразить ее содержимое, КМС просто перезагружает страницу.
Проверка показала, что инцидент имеет место быть, проверено на трех броузерах (хром, огнелис и опера). Причем глюк наблюдается только на хосте клиента, на локали глюка нет.
Небольшое исследование выявило причину - после клика КМС делает редирект с параметром видано проблема в том, что значение параметра передается неверно - должно быть а реально получается Насколько я понимаю, происходит "двойное кодирование" пути, в результате чего символ "%" сам оказывается URL-закодированным.
Еще одна особенность - если включить режим отладки ($config['debug'] = true; в файле config.php), то глюк исчезает и все начинает работать как часы.
Теперь собственно о головной боли.
Трассируя движок, нашел, что сам редирект выполняется в 137 строке файла misc.functions.php, где стоит команда:
Но, вставив перед ней кусокя увидел, что в броузер адрес отправляется правильным, т.е. содержит
%2Fuploads%2Fimages
а не
%252Fuploads%252Fimages....
Не дайте сойти с ума, объясните, почему броузеры ломают этот запрос и (главное!) как от этого избавиться. Нутром чую, что виноват хостинг, но в какую сторону копать - ума не приложу.
ЗЫ
параметры хоста:
Server API (server_api):
cgi-fcgi
Server Database (server_db_type):
MySQL (mysql)
Server Database Version (server_db_version):
5.0.91
Server Software (server_software):
Apache
Server Operating System (server_os):
Linux 2.6.18-194.26.1.el5PAE On i686
Current PHP Version (phpversion):
5.2.17
CMSMS 1.9.1. Установлена на нескольких хостах (и куча копий на локали). Все было нормально до сегодняшнего дня, когда один из клиентов сообщил, что не может пользоваться менеджером файлов в КМС - он кликает по имени папки, но вместо того чтобы отобразить ее содержимое, КМС просто перезагружает страницу.
Проверка показала, что инцидент имеет место быть, проверено на трех броузерах (хром, огнелис и опера). Причем глюк наблюдается только на хосте клиента, на локали глюка нет.
Небольшое исследование выявило причину - после клика КМС делает редирект с параметром вида
Code: Select all
&m1_path=%2Fuploads%2Fimages
Code: Select all
%2Fuploads%2Fimages
Code: Select all
%252Fuploads%252Fimages
Еще одна особенность - если включить режим отладки ($config['debug'] = true; в файле config.php), то глюк исчезает и все начинает работать как часы.
Теперь собственно о головной боли.
Трассируя движок, нашел, что сам редирект выполняется в 137 строке файла misc.functions.php, где стоит команда:
Code: Select all
header("Location: $to");
Code: Select all
var_dump($to); exit;
%2Fuploads%2Fimages
а не
%252Fuploads%252Fimages....
Не дайте сойти с ума, объясните, почему броузеры ломают этот запрос и (главное!) как от этого избавиться. Нутром чую, что виноват хостинг, но в какую сторону копать - ума не приложу.
ЗЫ
параметры хоста:
Server API (server_api):
cgi-fcgi
Server Database (server_db_type):
MySQL (mysql)
Server Database Version (server_db_version):
5.0.91
Server Software (server_software):
Apache
Server Operating System (server_os):
Linux 2.6.18-194.26.1.el5PAE On i686
Current PHP Version (phpversion):
5.2.17