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

Форум PHP

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

 

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

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

тема: Обработка данных при отправке формы
 
 автор: Jaroslav   (18.05.2009 в 09:39)   письмо автору
 
 

Здравствуйте.

Подскажите, пожалуйста, как правильно обработать переменную с текстом, чтобы соблюдались правила безопасности, но можно было вводить некоторые теги - конкретно:

<a> <b> <i> <p> <br>

без использования [b] [i] Как это сделать?

  Ответить  
 
 автор: Николай2357   (18.05.2009 в 11:16)   письмо автору
 
   для: Jaroslav   (18.05.2009 в 09:39)
 

С тегами возможно вот такое извращение:
<?
function html_chars($tag)
{
$arr = array(
    
'<i>',
    
'</i>',
    
'<b>',
    
'</b>'
    
);
if(
in_array($tag[0],$arr))
return 
$tag[0];
else
return 
htmlspecialchars($tag[0]);
}
$text '<b>жирный</b><s>просто текст</s>';
$text preg_replace_callback("#<([^>]+?)>#","html_chars",$text);
echo 
$text;

а что касаемо ссылок, то не стоит этого делать. Или как минимум нужно обрезать GET параметры.

  Ответить  
 
 автор: Jaroslav   (18.05.2009 в 11:31)   письмо автору
 
   для: Николай2357   (18.05.2009 в 11:16)
 

спасибо!

  Ответить  
 
 автор: Николай2357   (18.05.2009 в 11:39)   письмо автору
 
   для: Jaroslav   (18.05.2009 в 11:31)
 

Эта функция не будет обрабатывать кавычки и апострофы. Вообще слишком много возни... А чем псевдотеги не устраивают?

  Ответить  
 
 автор: sd607   (18.05.2009 в 13:12)   письмо автору
 
   для: Николай2357   (18.05.2009 в 11:16)
 

А не лучше ли для данного случая просто использовать strip_tags?


string strip_tags  ( string $str  [, string $allowable_tags  ] )



<?php
$text 
'<b>жирный</b><s>просто текст</s>'
echo  
strip_tags  $text'<b><i>');
?>

  Ответить  
 
 автор: Николай2357   (18.05.2009 в 14:06)   письмо автору
 
   для: sd607   (18.05.2009 в 13:12)
 

Ну она же просто удалит теги, а нужно их отобразить, как я понял.

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

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