Page 1 of 1

Помогите не свихнуться.... [РЕШЕНО]

Posted: Tue Mar 01, 2011 8:27 pm
by m00nk
Проблема:

CMSMS 1.9.1. Установлена на нескольких хостах (и куча копий на локали). Все было нормально до сегодняшнего дня, когда один из клиентов сообщил, что не может пользоваться менеджером файлов в КМС - он кликает по имени папки, но вместо того чтобы отобразить ее содержимое, КМС просто перезагружает страницу.

Проверка показала, что инцидент имеет место быть, проверено на трех броузерах (хром, огнелис и опера). Причем глюк наблюдается только на хосте клиента, на локали глюка нет.

Небольшое исследование выявило причину - после клика КМС делает редирект с параметром вида

Code: Select all

&m1_path=%2Fuploads%2Fimages
но проблема в том, что значение параметра передается неверно - должно быть

Code: Select all

%2Fuploads%2Fimages
а реально получается

Code: Select all

%252Fuploads%252Fimages
Насколько я понимаю, происходит "двойное кодирование" пути, в результате чего символ "%" сам оказывается URL-закодированным.

Еще одна особенность - если включить режим отладки ($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

Re: Помогите не свихнуться.... :(

Posted: Wed Mar 02, 2011 9:35 am
by Fenik17
Попробуйте обновить до 1.9.3. Там что-то такое фиксили..

Re: Помогите не свихнуться.... [РЕШЕНО]

Posted: Thu Mar 03, 2011 9:32 pm
by m00nk
В общем проблема в хостере. Дело в том, что у этого хостера (для удобства клиентов ::) ) есть такая фича, как временное доменное имя. Т.е. если хостинг уже куплен, а доменного имени еще нет, то хостер предоставляет временный суб-домен для настройки и тестирования сайта.

Косяк в том, что эти суб-домены делаются каким-то кривым редиректом. При выполнении этого редиректа и происходит повторное URL-кодирование спец-символов.

В общем, прикрутили к хосту нормальное доменное имя и все заработало как надо. Зря только волосы на голове рвал :(