Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Замена HTML кода в переменной
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: Подскажите пжлста как в тексте кот. пользователь вводит в форме в гостевой, заменить введенные им тэги на безопасные символы?
4c005
Отправлено: 06 Августа, 2005 - 06:58:59
Post Id


Newbie


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2005  
Откуда: РФ С-Пб

Карма 0




Вопрос такой: Есть форма в которой юзер вводит текст (злобный юзер текст с HTML тэгами), как заменить введенные им тэги на безопасные символы? Перерыл несколько исходников но так и не понял. Однако

Решил что вот этот вариант работает:
CODE:
$message[0]=htmlspecialchars($message[0]);
Нет... Нахмурился

Попробовал менять только некоторые символы:
CODE:
$message[0]=str_replace("<","(",$message[0]);
$message[0]=str_replace(">",")",$message[0]);
И так тоже ничего не получилось... Огорчение

Спасибо.
 
 Top
Ray Wen Администратор
Отправлено: 06 Августа, 2005 - 10:53:38
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




CODE:
function code($val) {
$val = str_replace( " " , ' ' , $val );
$val = str_replace( "&" , '&amp;' , $val );
$val = str_replace( "<!--" , '<!--' , $val );
$val = str_replace( "-->" , '-->' , $val );
$val = preg_replace( "/<script/i" , '<script' , $val );
$val = str_replace( ">" , '>' , $val );
$val = str_replace( "<" , '<' , $val );
$val = str_replace( "\"" , '"' , $val );
$val = preg_replace( "/\\\$/" , '$' , $val );
$val = preg_replace( "/\r/" , '' , $val );
return $val;
}
Примерно так на этом форуме.
 
 Top
Ray Wen Администратор
Отправлено: 06 Августа, 2005 - 10:55:59
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




Вот блин... не хочет рисовать как есть...
[pre]function code($val) {
$val = str_replace( " " , ' ' , $val );
$val = str_replace( "&" , '&' , $val );
$val = str_replace( "<!--" , '<!--' , $val );
$val = str_replace( "-->" , '-->' , $val );
$val = preg_replace( "/<script/i" , '<script' , $val );
$val = str_replace( ">" , '>' , $val );
$val = str_replace( "<" , '<' , $val );
$val = str_replace( "\"" , '"' , $val );
$val = preg_replace( "/\\\$/" , '$' , $val );
$val = preg_replace( "/\r/" , '' , $val );
return $val;
}[/pre]

Ну хоть частично... в исходном коде должно быть все нормально...
 
 Top
4c005
Отправлено: 06 Августа, 2005 - 13:32:03
Post Id


Newbie


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2005  
Откуда: РФ С-Пб

Карма 0




Ха-ха Заработало!!! Спасибо!Радость

Сначала не получалось, а потом поковырявшись в коде выяснил, что писал этот кусок не в том месте. Не понял
 
 Top
TvoyWeb Администратор
Отправлено: 06 Августа, 2005 - 18:29:59
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




Ray Wen
Вообще htmlspecialchars самое то что нужно. А код из форума... это честно говоря г.... Просто не переделываю его потому что придется все файлы пересобачить.
 
 Top
Ray Wen Администратор
Отправлено: 07 Августа, 2005 - 01:50:02
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




TvoyWeb
Хм... а в какой версии php это появилось и что именно это сделает? Все тоже самое или что-то лишнее или наоборот не доделает?
 
 Top
4c005
Отправлено: 07 Августа, 2005 - 03:44:42
Post Id


Newbie


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2005  
Откуда: РФ С-Пб

Карма 0




TvoyWeb
Ну вот и я решил, что это круто... но не заработало у меня... На сервере PHP 4.1. На локальной машине Денвер...

Если знаешь как правильно написать, подскажи жалста...
 
 Top
FROZEN
Отправлено: 07 Августа, 2005 - 11:48:26
Post Id



Full Member


Покинул форум
Сообщений всего: 243
Дата рег-ции: Янв. 2005  

Карма -1




CODE:
$message[0]=htmlspecialchars(stripslashes($message[0]));


Вроде так, просто уже не помню (хорошо отдохнул).
 
 Top
TvoyWeb Администратор
Отправлено: 07 Августа, 2005 - 16:52:42
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




Выдержка из мануала PHP
CODE:
htmlspecialchars
(PHP 3, PHP 4 , PHP 5)

htmlspecialchars -- Преобразует специальные символы в HTML сущности
Описание
string htmlspecialchars ( string string [, int quote_style [, string charset]])


В HTML некоторые символы имеют специальное значение и для сохранения своего значения должны быть преобразованы в HTML сущности. Эта функция возвращает строку, над которой проведены некоторые из таких преобразований. Этих преобразований достаточно для большинства задач веб-программирования. Если вам нужно преобразовать все возможные сущности, используйте htmlentities().

Эта функция полезна при отображении данных, введенных пользователем, которые могут содержать нежелательные HTML тэги, например в форуме или гостевой книге. Необязательный второй аргумент quote_style определяет режим обработки одиночных и двойных кавычек. В режиме по умолчанию, ENT_COMPAT, преобразуются двойные кавычки, одиночные остаются без изменений. В режиме ENT_QUOTES преобразуются и двойные, и одиночные кавычки. а в режиме ENT_NOQUOTES и двойные, и одиночные кавычки остаются без изменений.

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


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

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

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

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

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

Пример 1. Пример использования htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &­lt;a href='test'&­gt;Test&­lt;/a&­gt;
?>


Как видно из мануала эта функция поддерживается начиная с третьей версии пхп. Есть еще функция
CODE:
htmlentities
(PHP 3, PHP 4 , PHP 5)

htmlentities -- Преобразует символы в соответствующие HTML сущности.
Описание
string htmlentities ( string string [, int quote_style [, string charset]])


Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют).
 
 Top
4c005
Отправлено: 08 Августа, 2005 - 01:13:32
Post Id


Newbie


Покинул форум
Сообщений всего: 26
Дата рег-ции: Июль 2005  
Откуда: РФ С-Пб

Карма 0




Исчерпывающще. Все написал, все работает, очередное спасибо! Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0375]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33