Перейти к публикации

Экранирование спецсимволов!


Рекомендованные сообщения

После переезда на другой сервер и заходе на сайт через прокси, не обрабатываются кавычки, т.е. они выводятся вместе с шаблоном, изза чего весь шаблон кривой и не видны картинки, не подключается css и т.п.:

\"закрыть\"

http://www.сайт.ru/"/templates/russia...tags.gif/"

из картинок нормально отображаются только те которые добавлены в новость.

Хотя форум после переноса нормально работает (smf)

В чем может быть проблема? До переезда все было нормально.

Сайт лицензия.

Изменено пользователем freakenergy
Ссылка на сообщение
Поделиться на других сайтах

Вот проблема более точно:

При запуске движка DLE на apache22+mod_php(5.2.8) по всему выводимому контенту были экранированы двойные кавычки. В результате чего сайт становился полностью нерабочим из-за некоррктного синтаксиса html

Частично могло помочь, есди в gzip.php добавить

$Contents = str_replace('\"','"',$Contents);

но тоже это не решало всех проблем, поскольку в ряде случаев по сайту всё-таки экранирование было

необходимо.

Как только отключили mod_php и запустили сайт из под php-cgi - всё сразу нормализовалось.

php.ini и версия php в обоих случаях одинаковая

Ссылка на сообщение
Поделиться на других сайтах

Открыть index.php и найти:

echo $tpl->result['main'];
Заменить на:
echo stripslashes($tpl->result['main']);

Столкнулся с подобной проблемой у себя в движке и пока решения не нашёл...

Ссылка на сообщение
Поделиться на других сайтах

Хотелось бы выслушать мнение Владимира...На локали также PHP 5.2.8 (Linux) и такая проблема.

Видимо это из-за Magic Quotes, но стоит @set_magic_quotes_runtime(0);

Однако толку от этого нуль...Есть идеи, Владимир?Баг php 5.2.8?

Ссылка на сообщение
Поделиться на других сайтах

на dle-news.ru стоит 5.2.8 и нет никаких проблем стоит при этом как mod_php. Откуда беруться кавычки в шаблоне мне если честно непонятно, это же не данные POST или GET

проверьте такие настроки как:

magic_qoutes_gps

magic_qoutes_runtime

magic_qoutes_sybase

Ссылка на сообщение
Поделиться на других сайтах

Владимир, у меня та же фигня не на DLE =/

Причём выскакивает после применения регулярки =/

Если интересно - могу в ПМ скинуть код, который вызывает кавычки...

Ссылка на сообщение
Поделиться на других сайтах

Причём выскакивает после применения регулярки =/

если регулярное выражение использует вызов функции то экранирование происходит всегда и независимо от настроек, в этой функции обязательно нужно применять stripslashes

Ссылка на сообщение
Поделиться на других сайтах

IT-Security,

Все знать невозможно :) Причина кстати этому является то что функци вызывается не напрямую а в тексте, например

"\$this->build_video('\\1')"

сначала идет замена \\1 на найденный текст и потом вызов функции и если бы небыло экранирования то произошла бы синтаксическая ошибка.

Ссылка на сообщение
Поделиться на других сайтах

а проблема в том что разработчики принудительно экранируют входные данные, о такой вещи как magic qoutes они, походу либо не знают, либо написать проверку было лень, вот и получается лишний слеш. Ай-ай-ай, стыдно!

Разработчики знают обо всем. И все что экранируют приводят в нормальный в и в зависимости от настроек сервера все возвращают в исходное состояние. Вникните сначала в суть вопроса. Проблема не с данными из БД, а со всем что на сайте, с шаблонами в том числе, и где вы увидели экранирование шаблонов при чтении их из файлов.

magic_qoutes_gps это для входящих данный типа POST и GET, что шаблоны через форму поступают в скрипт?

Ссылка на сообщение
Поделиться на других сайтах

В БД весь HTML у которого есть " тоже экранируется, что приводит к проблемам при использование модулей. Раньше " не экранировались.

Ссылка на сообщение
Поделиться на других сайтах

В БД весь HTML у которого есть " тоже экранируется, что приводит к проблемам при использование модулей. Раньше " не экранировались.

БД всегда эканировалась, если бы этого небыло давно бы сайты взломали. Тут уже проблема самих сторонних модулей, которые не снимают экранирование.

Ссылка на сообщение
Поделиться на других сайтах

БД всегда эканировалась, если бы этого небыло давно бы сайты взломали. Тут уже проблема самих сторонних модулей, которые не снимают экранирование.

Ага в БД все " экранируется :D , а это что тогда такое:

<div align="center"><img src="http://data/uploads/boxsmall.jpg" style="border: none;" /></div>Добро пожаловать на демонстрационную страницу движка
а это код отрывка дефолтной новости - без экранирования заметьте. вот это код новости из базы с версии 7.3:
<img src="http://data5/uploads/toras.jpg" border="0" alt="alt" />В прошлом сезоне вернувшееся в суперлигу Торпедо» заняло
о чудо и он опять без экранирования а вот здесь уже код новости добавленной через WYSIWYG (версия 7.5)
<img src=\"http://data5/uploads/posts/2009-02/1235234879_motivatsia20.jpg\" border=\"0\" alt=\"alt\" align=\"left\" /><br /><br /><br />В прошлом сезоне вернувшееся в суперлигу

все экранировано;

если эту же новость сохранить через BB, то она сохраниться без экранирования.

Вот такие пироги.

Ссылка на сообщение
Поделиться на других сайтах

Rekrut,

Мне нечего вам сказать, вы понятие не имеете что такое экранирование и где оно применяется. Откройте install.php и посмотрите как добавляются новости при добавлении и есть ли там экранирование или нет.

Ссылка на сообщение
Поделиться на других сайтах

Ну я вегда считал что экранирование это так: \"....\"

т.е. экранирование " HTML-ля чтоб PHP не выдавал ошибок.

А ошибка в движке есть, так как раньше все новости в БД были с тем HTML-ле, который ты создаешь в новости и не каких \ не добавлялось.

А теперь весь HTML в БД да и вообще все " экранированы.

Да и вообще, по логике вещей все новости должны храниться в БД в одинаковом виде, а не так что часть без экранирования (это дефолтные), а часть с экранированием (это все которые мы добавляем).

Так что.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...