Имя: Пароль:
1C
1С v8
Вопрос по html
0 Икогнито
 
06.06.13
21:06
На основании текстовых полей на форме, в которые пользователи вводят текст, генерируется страница в формате html.

Какие символы надо запретить вводить пользователям, чтобы созданная  html- страница не сглючила? То есть, чтобы символы, введенные пользователем, не были восприняты html как управляющие конструкции?

Пока додумался запретить < > { }.

Что еще нужно запретить?
1 quest
 
06.06.13
21:14
Запрети нах все. И будет счастье. Нет ввода - нет проблем. А то уже 3 подряд идущие темы....
2 Ben_art
 
06.06.13
21:16
любые тэги запрети
3 quest
 
06.06.13
21:21
и где ты задачи с таким способом решения берешь?
4 banco
 
06.06.13
21:22
а почему должна глючить страница? вот ты сейчас тут в поле  написал символы <> {} и оны нормально выводятся
5 quest
 
06.06.13
21:23
цени - ради тебя в гугл залез http://php.net/manual/en/function.htmlspecialchars.php и перестань лисапед изобретать
6 Asmody
 
06.06.13
21:24
(5) казалось бы - при чем тут 1С?
7 quest
 
06.06.13
21:28
(6) да хз.... на 1с ту чушь что в (0) я  реализовывать бы не стал.
8 Asmody
 
06.06.13
21:32
(7) почему чушь? Типовая задача: пользователь что-то вводит, а потом по этим данным формируется письмо в формате html
9 banco
 
06.06.13
21:33
вообще для таких задач можно использовать форматированный документ и пусть пользователи пишут что хотят, даже картинку могут вставить
10 Asmody
 
06.06.13
21:35
(0) в эске есть метод проверки xml-строки, что-то типа ПроверитьДопустимыеСимволы или как-то так. ее вполне можно использовать
11 Asmody
 
06.06.13
21:36
(9) а если пользователь заполняет бланк или форму какую?
12 banco
 
06.06.13
21:48
(11) это уже другая задача, а не письмо в формате html ))). да и все таки все эти символы в (0) можно выводить в html страницу предварительно обработав
13 Икогнито
 
06.06.13
22:08
(5) Спасибо.
По поводу ВЫПОЛНИТЬ() никакой символ её не валит, пока результат не передаешь на клиента.
14 Asmody
 
06.06.13
22:38
(12) пользователь заполняет бланк и заполненный бланк отправляется почтой в html
15 Очкарик
 
06.06.13
22:59
(14) ты про XDTO написал не верно.
Текст преобразовывается в XML, а потом запихивается в XDTO.

Наверно, ты невнимательно читал и очень расстроился...
16 Очкарик
 
06.06.13
23:49
Может кому пригодится:

Функция ОбработатьЗначениеДляСохранения(Знач ЗначениеСтрока)
   
   Соответствие = Новый Соответствие;
   
   Соответствие.Вставить(""""    ,"''"); //надо для создания структуры из строки
   //убираем упр. символы html
   Соответствие.Вставить("&"    ,"(ampersand)");
   Соответствие.Вставить("<"    ,"(less than)");
   Соответствие.Вставить(">"    ,"(greater than)");
   //убираем теги java
   Соответствие.Вставить("{"    ,"(");
   Соответствие.Вставить("}"    ,")");
   //-------------------------

   ПромежуточныйТекст = "";
   Для Каждого ЭлементСоответствия ИЗ Соответствие Цикл
       ПромежуточныйТекст    = СтрЗаменить(ЗначениеСтрока,ЭлементСоответствия.Ключ,ЭлементСоответствия.Значение);
       ЗначениеСтрока        = ПромежуточныйТекст;
   КонецЦикла;
   
   ТекстБезПереносовСтроки = "";
   Для Х = 1 по СтрЧислоСтрок(ПромежуточныйТекст) Цикл
       ТекстБезПереносовСтроки = ТекстБезПереносовСтроки + " " + СтрПолучитьСтроку(ПромежуточныйТекст,Х);
   КонецЦикла;
   
   ТекстБезПереносовСтроки = СокрЛП(ТекстБезПереносовСтроки);
   
   Возврат ТекстБезПереносовСтроки;
   
КонецФункции