PHP

Еще фильтры

Записи хранятся на сервере, поэтому если запись будет не записью, а скриптом, последствия могут быть ... Плохими, короче говоря. Не лучше, если в послании будут содержаться и ссылки. Поэтому перед записью сообщение лучше очистить от ненужного мусора. Стоит заметить, что в приведенном варианте гостевой книги нажатие перевода строки пользователем при вводе текста вызовет обрыв текста, при воспроизведении будет выведен текст до переноса. Так что придется и от переносов избавляться. Начнем с переносов - тупо заменим их в переменной $text на пробелы:

$text=str_replace(chr(13).chr(10),chr(32),$text);

Если нам пытаются вписать ссылку, то в тексте будет содержаться или 'http' или 'www' (или то и другое вместе). Просто в этом случае сбросим текст - пусть пишут дальше (код для 'http', но также поступают и с 'www'):

if(stristr($text,"http"))$text="";

И, наконец, заэкранируем символы с кодами от 0 до 37 (или другими, на ваше усмотрение) с помощью функции addcslashes(где экранируем, какие символы), а функцией htmlspecialchars(где) преобразуем нежелательные HTML-коды:

$text = htmlspecialchars(addcslashes($text,"\0...\37"));

Как это работает, можно проверить на простом демонстрационном примере и использовать эти фильтры по одному, по два или все сразу. Переходим к загрузке файлов.

Рейтинг@Mail.ru