Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Браузер добавляет к внешним урл в контенте адрес сайта
Форумы портала PHP.SU » Разное » Прочее » Браузер добавляет к внешним урл в контенте адрес сайта

Страниц (1): [1]
 

1. kononj - 07 Июня, 2015 - 01:44:17 - перейти к сообщению
В тексте страницы после редактирования FCKEditor прописана внешняя ссылка:

<a href="http://www.sobor.by">...</a>

или точнее c html-примитивами:

<a href=&#34http://www.sobor.by&#34>...</a>

а браузер выводит эту страничку с добавлением урл текущего сайта:

http://www.mysait.by/"http://www.sobor.by"

Страница естественно не находится.
Если убрать ковычки:

<a href=http://www.sobor.by>...</a>

то всё нормально. Браузер не добавляет урл текущего сайта.
Подскажите, как это побороть?
2. Ts.Saltan - 07 Июня, 2015 - 09:14:25 - перейти к сообщению
На сервере точно нет никаких фильтров?
Если нет, то скорее всего сам редактор режет кавычки
3. LIME - 07 Июня, 2015 - 12:43:35 - перейти к сообщению
kononj пишет:
после редактирования FCKEditor
он уже так не называется не помню с какого года
Практически сразу как вышел
Изза нелитературного сокращения на англ языкеУлыбка
http://ckeditor[dot]com вот он
Ну и поискал за тебя
Мне не трудно прикинь
http://www[dot]drupal[dot]ru/node/115876
4. kononj - 07 Июня, 2015 - 18:51:26 - перейти к сообщению
Да точно так: нужно использовать htmlspecialchars_decode(), так как при выводе контента должны быть не примитивы (по крайней мере в тэге href=), а спецсимволы.
Спасибо всем, кто отозвался на мою проблему и участвовал в обсуждении.
Проблема решена с помощью двух операторов:
<code>
1. $nnews=str_replace('&#тридцать четыре;','&quot;',$row['nnews']);
2. $nnews=htmlspecialchars_decode($nnews, ENT_QUOTES);
</code>
Редактор CKeditor (раньше назывался FCKeditor) в конце сеанса редактирования заменяет двойную кавычку на примитив "
К редактору претензий нет.
Записываем в базу текст с примитивом двойной кавычки "
Перед выводом контента извлекаем его из базы и заменяем примитив " на примитив &quot; потому что функция htmlspecialchars_decode() распознаёт именно этот примитив. Далее применяем эту самую функцию htmlspecialchars_decode(), которая заменяет примитивы на спец.символы. Тогда браузер отображает всё как надо.
Можно обойтись одним оператором и преобразовать только двойную кавычку, а остальные спец.символы оставить как примитивы:
<code>
1. $nnews=.str_replace('&#тридцать четыре;','"',$row['nnews']);
</code>
Но это как-то некрасиво и наверно чревато в дальнейшем неприятностями
5. LIME - 07 Июня, 2015 - 18:55:33 - перейти к сообщению
А если тебе понадобится ввести не ссылку а именно тег? Для отображения примера html кода
Давай очередную цепочку реплэйсовУлыбка
6. kononj - 07 Июня, 2015 - 19:16:04 - перейти к сообщению
LIME пишет:
А если тебе понадобится ввести не ссылку а именно тег? Для отображения примера html кода
Давай очередную цепочку реплэйсовУлыбка

Да! Не совсем конечно хорошо...
Надо конечно подумать о последствиях (поэтому я и пошёл на форум - своего опыта маловато).
Но пока возможно прокатит, так как этот код для админки сайта вывода новостей: нужен вывод картинок, внешние ссылки в тексте, скачивание какого-нибудь документа .doc по ссылке в тексте. Вот вроде и всё, что пока нужно. Пользователь админки HTML не владеет. Работает с кнопками CKEditor и всё. Отображать пример html кода - вряд ли это понадобится.
7. LIME - 07 Июня, 2015 - 19:18:16 - перейти к сообщению
Тогда усть пользуется кнопкой добавления ссылки
8. kononj - 07 Июня, 2015 - 19:27:12 - перейти к сообщению
LIME пишет:
Тогда усть пользуется кнопкой добавления ссылки

Так и делает в CKEditor.
Их начальник - тот покруче. Знает HTML. В админке есть также возможность редактирования текста новости напрямую без CKEditor, то есть как обычный текст формой HTML. Там, возможно, проблемы возникнут... Всё зависит от того, что им может ещё понадобиться сверх того, что я описал.
9. LIME - 07 Июня, 2015 - 19:44:54 - перейти к сообщению
Так блин отключи фильтры в режиме хтмл. Я для кого ссылку давал?!!!
10. kononj - 08 Июня, 2015 - 10:40:23 - перейти к сообщению
LIME пишет:
Так блин отключи фильтры в режиме хтмл. Я для кого ссылку давал?!!!

За ссылки спасибо!
Я их изучаю для применимости к тому коду админки и вывода контента, который мне достался в наследство.
Тут есть два момента, требующих осмысления:
1. Изначально в админке была и остаётся функция непосредственного добавления/редактирования текста новости без CKEditor простой формой HTML. Там же необходимая загрузка картинок с кадрированием и т.д. Код много кем код дописывался... Сейчас там мозг сломаешь.
Этот код остаётся в работе, так как там много чего нужного. Отказаться нельзя. переписать руки не доходят.
2. Я сделал дополнительно ещё одну функцию редактирования текста новости с возможностями CKEditor. Версия CKEditor не последняя. 2 - 3 -летней давности.
Должен корректно работать код пункта 1 и пункта 2 да ещё и вывод контента.
С 9-00 до 17-00 в админке работают пользователи. Не влезешь. Что-то попробовать можно после 17-00.
Так что спасибо за ссылку. Буду смотреть.
11. Мелкий - 08 Июня, 2015 - 10:56:08 - перейти к сообщению
kononj пишет:
С 9-00 до 17-00 в админке работают пользователи. Не влезешь. Что-то попробовать можно после 17-00.

Срочно поднимайте локальную копию, с которой работаете только вы и которую даже если сломаете капитально - не страшно.

 

Powered by ExBB FM 1.0 RC1