Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с wysivig) а через два дня здавать заказ))
 
 автор: Синигами   (08.11.2009 в 18:22)   письмо автору
 
 

Вобщем дело обстоит так, возможно я туплю но хз как сделать, надеюсь все знакомы с wysivig расширением для текстовых полей.

Так вот, самописная CMS

Моделируем ситуацию : Админ хочет добавить статью, прежде нунжно загрузить на сервер изображения, есть форма для загрузки, и когда изображения загружены программа дает админу исходный код фоток которые впоследствии он добавит в статью в то место где ему приспичило всунуть фоту
Код выглядит примерно так - <всякие левые html тэги><img src="имя фотки"></всякие левые html тэги>

Но!! наш веселый wysivig делает все через одно место место и в базе данных вместо вышеуказанного чудесного кода мы видим кучу амперсандов, проблема собственно в том чтобы вернуть коду исходный вид,

Могу обьяснить проще

$text = "<img src="img.jpg">";
$text = htmlspecialchars($text);
$text = htmlspecialchars($text);

echo $text = //куча амперсандов
нужно вернуть переменной первоначальное значение до обработки )

кто хочет предложить отказаться от Wysivig, дам асю заказчика и втирайте ему))

  Ответить  
 
 автор: sim5   (08.11.2009 в 19:00)   письмо автору
 
   для: Синигами   (08.11.2009 в 18:22)
 

А зачем отдавать фото, чтобы получить что-то "волшебное", разве нельзя указать изображения сразу в тексте, причем ВВ-кодом? При сохранении чего-то там, и при наличии вставки изображений, можно указать реальные имена и пути на сервере.

  Ответить  
 
 автор: Trianon   (08.11.2009 в 21:13)   письмо автору
 
   для: sim5   (08.11.2009 в 19:00)
 

Я так понимаю, что последний абзац тредстартер написал как раз в расчете на такие предложения :))

  Ответить  
 
 автор: sim5   (09.11.2009 в 00:07)   письмо автору
 
   для: Trianon   (08.11.2009 в 21:13)
 

Я этот абзац даже и не читал )), прочитал сразу о "волшебном коде для клиента", улыбнулся и стал писать ответ.

  Ответить  
 
 автор: sasha1133   (08.11.2009 в 19:43)   письмо автору
 
   для: Синигами   (08.11.2009 в 18:22)
 

>$text = "<img src="img.jpg">";
>$text = htmlspecialchars($text);
>$text = htmlspecialchars($text);
>
>echo $text = //куча амперсандов


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

Мне кажется можно убрать эту функцию. У меня почти такая же ситуация была, я просто скопипастил js - код с этого сайта (когда пишешь сообщение, сбоку есть

Используйте тэги для выделения текста:
Код:

Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url])

только я сделал, чтоб он добавлял не такие [b] а такие <b> теги в текст. И всё вроде работает, конечно тут надо предупредить админа не писать в тексте < или >, так как это приведёт скорее всего к полному отстою на сайте))

  Ответить  
 
 автор: sim5   (08.11.2009 в 19:59)   письмо автору
 
   для: sasha1133   (08.11.2009 в 19:43)
 

>Так вроде функция htmlspecialchars как раз и делает, чтобы превратить тэги в их коды

Это где вы такое вычитали? htmlspecialchars, читайте мануал и не городите отсебятины.
Добавить нужно ВВ-тег [img][/img], который обрабатывается рег.выражением (как впрочем и все остальные), и с помощью JS у клиента, вставлять этот тег в текс, подставляя в него в качестве значения значение атрибута value поля file. На сервере же заменить это значение на сформированное имя при удачной загрузки изображения. Не надо "волшебства", оно излишнее.

  Ответить  
 
 автор: tvv123456   (08.11.2009 в 21:17)   письмо автору
 
   для: sim5   (08.11.2009 в 19:59)
 

Дак там вроде и написано:
Производятся следующие преобразования: 


'&' (амперсанд) преобразуется в '&amp;' 

'"' (двойная кавычка) преобразуется в '&quot;' when ENT_NOQUOTES is not set. 

''' (одиночная кавычка) преобразуется в '&#039;' только в режиме ENT_QUOTES. 

'<' (знак "меньше чем") преобразуется в '&lt;' 

'>' (знак "больше чем") преобразуется в '&gt;' 

  Ответить  
 
 автор: sim5   (09.11.2009 в 00:03)   письмо автору
 
   для: tvv123456   (08.11.2009 в 21:17)
 

Я говорил о ВВ-тегах, это первое. Поэтому ответ автороа "Так вроде функция htmlspecialchars как раз и делает, чтобы превратить тэги в их коды", звучит несколько странно. Ну и второе - эта функция не преобразует "в коды", она конвертирует специальные символы в мнемоники HTML.

  Ответить  
 
 автор: Николай2357   (09.11.2009 в 01:01)   письмо автору
 
   для: Синигами   (08.11.2009 в 18:22)
 

Смущает вот это:
<?
$text 
htmlspecialchars($text);
$text htmlspecialchars($text);

Почему два раза? Двойное преобразование может оказаться необратимым. А вообще для таких казусных ситуаций есть функция htmlspecialchars-decode()

  Ответить  
 
 автор: Синигами   (09.11.2009 в 02:47)   письмо автору
 
   для: Николай2357   (09.11.2009 в 01:01)
 

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

  Ответить  
 
 автор: Синигами   (09.11.2009 в 11:53)   письмо автору
 
   для: Николай2357   (09.11.2009 в 01:01)
 

Серв почему то ругается на эту функцию) говорит нопределена)

  Ответить  
 
 автор: Николай2357   (09.11.2009 в 12:48)   письмо автору
 
   для: Синигами   (09.11.2009 в 11:53)
 

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

  Ответить  
 
 автор: Николай2357   (09.11.2009 в 12:48)   письмо автору
 
   для: Синигами   (09.11.2009 в 11:53)
 

-

  Ответить  
 
 автор: Синигами   (09.11.2009 в 15:55)   письмо автору
 
   для: Николай2357   (09.11.2009 в 12:48)
 

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

  Ответить  
 
 автор: Trianon   (09.11.2009 в 16:08)   письмо автору
 
   для: Синигами   (09.11.2009 в 15:55)
 

ну если ВЫ прочли описание, то по идее могли прочесть и в какой версии языка эта функция появилась.
А если у Вас денвер, то определить версию php тоже не проблема.
Какой самысл гадать - тем более через форум?

  Ответить  
 
 автор: Синигами   (09.11.2009 в 02:55)   письмо автору
 
   для: Синигами   (08.11.2009 в 18:22)
 

Ребят, все варианты про ББ тэги отпадают, в Wysivig этого нету) а заказчик хочет именно его)
нужен вариант преобразования из *амперсандов* в HTML)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования