Возникла следующая проблемка:
Есть форма редактирования конфига админки. Там идет обычный PHP'шный код - define'ы и т.п.
Переношу эту админку на сервер. В итоге, при сохранении конфига через эту форму весь файл затирается.
Оказалось, что хотя форма и заполнена, в $_POST данные этого поля не пропускаются.
Долго искал причину этого всего.
Нашел. Где то между тем как был отправлен POST запрос с сайта и данные были записаны в $_POST, значения переменных обрезаются до первого вхождения знака "<".
При этом, на ВДС с такой же конфигурацией работает стабильно другой сайт с такой же админкой.
Единственное отличие - первый сайт (там где не пашет) в кодировке UTF-8, а второй в windows-1251.
Кто то сталкивался с подобным приколом?
Для большей ясности приведу пример:
Данные формы (сразу напишу, что в качестве "enctype" пробовал все возможные варианты):
CODE ( htmlphp):
скопировать код в буфер обмена
<form action="action.php" method="post" name="form1" enctype="multipart/form-data"> <input type="submit" value="Ok"> <input name="id" type="hidden" value="0"> <textarea name="content"><?php define('HOME',$_SERVER['DOCUMENT_ROOT'].'/'); .... .... .... ?> </textarea> </form>
После сабмита формы, в $_POST имеем следующее:
Теперь добавим в самое начало текста конфига всякий мусор и получаем следующее:
После сабмита формы, в $_POST получаем:
PS:
Версия PHP 5.4.15
Магические ковычки в нем убрали, но в htaccess на вякий случай все равно прописано:
(Отредактировано автором: 14 Июня, 2013 - 19:17:12)
|