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

Форум PHP

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

 

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

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

тема: Не работает htmlspecialchars
 
 автор: Nana   (25.05.2006 в 05:35)   письмо автору
 
 

После ее применения выдается в точности такая же строка с тегами, как она была. stripslashes тоже ничего не делает. С чем это может быть связано?

   
 
 автор: Lelik   (25.05.2006 в 06:55)   письмо автору
 
   для: Nana   (25.05.2006 в 05:35)
 

Попробуйте ввести такой код

 <html><body><script language="javascript">alert("Hello");</script></body></html>

если выскочит окошко значит функция не работает, а если покажется код - работает

   
 
 автор: Nana   (25.05.2006 в 15:53)   письмо автору
 
   для: Lelik   (25.05.2006 в 06:55)
 

alert работает, a htmlspecialchars - нет.

   
 
 автор: kadet_73   (25.05.2006 в 16:27)   письмо автору
 
   для: Nana   (25.05.2006 в 15:53)
 

а как Вы пишите эту строку? пример

   
 
 автор: Nana   (25.05.2006 в 16:57)   письмо автору
 
   для: kadet_73   (25.05.2006 в 16:27)
 

Ну например так:

$str="jhgsfjg <b>kjhskjdg</b> klh";
$str=htmlspecialchars($str);
echo $str;


$str остается такой же, как была. Может быть, я что-то не так пишу?

   
 
 автор: Владимир22   (25.05.2006 в 17:04)   письмо автору
 
   для: Nana   (25.05.2006 в 16:57)
 

Всё работает.

<?
$str
="jhgsfjg <b>kjhskjdg</b> klh";
$str=stripslashes($str);
echo 
$str;
?>



<?
$str
="<html><body><script language='javascript'>alert('Hello');</script></body></html>";
$str=htmlspecialchars($str);
echo 
$str;
?>


Всю вводимую пользователем информацию лучше обрабатывать тремя функциями сразу:
$str = stripslashes($str);
$str = htmlspecialchars($str);
$str=addslashes($str);

   
 
 автор: Nana   (25.05.2006 в 17:14)   письмо автору
 
   для: Владимир22   (25.05.2006 в 17:04)
 

То есть эта функция не удаляет теги, а просто не дает их выполнить (т.е. выводит как текст)?
Тогда все понятно :) Спасибо!

   
 
 автор: Владимир22   (25.05.2006 в 17:16)   письмо автору
 
   для: Nana   (25.05.2006 в 17:14)
 

Для удаления тегов:

$str=strip_tags($str);

   
 
 автор: kadet_73   (25.05.2006 в 17:18)   письмо автору
 
   для: Nana   (25.05.2006 в 16:57)
 

$str="jhgsfjg <b>kjhskjdg</b> klh";
$str= trim(nl2br(strip_tags(stripslashes($str))));
echo $str;

это другая функа как раз делает то что вы хотите

   
Rambler's Top100
вверх

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