|
|
|
| Перечислите плиз все что надо сделать с введенным польнзоватлем тесктом, например в гостевой или вот здесь на форуме. Я представляю что надо сделать, но все ли я знаю?
1.Удалить в начале и в конце пробелы
2.nl2br
3.Убрать слишком много <br>
4.Убрать или разрезать слишком длинные слова.
5.htmlspecialchars (при выводе из базы)
6.magic_quotes (при вводе в базу)
....
Может еще что-то ? | |
|
|
|
|
|
|
|
для: PantiL
(14.03.2006 в 22:10)
| | а теперь все тоже самое, но с примерами :) | |
|
|
|
|
|
|
|
для: FaStY
(14.03.2006 в 22:27)
| | $name = htmlspecialchars(substr($_POST['name'], 0, 10)); htmlspecialchars
$name = trim($name); првоерка пробелов
$comments = str_replace("<br />"," ",$comments); 3.Убрать слишком много <br> | |
|
|
|
|
|
|
|
для: FaStY
(14.03.2006 в 22:27)
| | $name = htmlspecialchars(substr($_POST['name'], 0, 10)); htmlspecialchars
$name = trim($name); првоерка пробелов
$comments = str_replace("<br />"," ",$comments); Убрать слишком много <br>
$comments = wordwrap($comments, 30, " ", 1); // Большие слова разделяем пробелом!
6.magic_quotes (при вводе в базу) что такое не знаю :) | |
|
|
|
|
|
|
|
для: PantiL
(14.03.2006 в 22:10)
| | Мне очень неудобно на самого себя ссылки давать. Только что я могу сделать. | |
|
|
|
|
|
|
|
для: Trianon
(14.03.2006 в 23:10)
| | Задавая вопрос я имел ввиду не как обезопаситься от инъекций или других атак, ну это конечно тоже, но главным образом меня интересовало то, как обезопаситься от осознанного ввода каким нибудь приколистом абрыкадабры. Миллион раз нажать ентер, или же слова длиной по 1000 знаков. Какие методы обработки текста надо применить чтобы введенный пост выглядел по человечески, не нарушая дизайна, не растягивая его в ширь. ну и тд и тп | |
|
|
|
|
|
|
|
для: PantiL
(15.03.2006 в 18:51)
| | Тут я пас.
Чтобы испортить внешний вид, среднему приколисту достаточно трех-пяти букв. | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 18:55)
| | не только! вот например не одна извыше упомянутых функций не защищает гсотевую или ещё что то от знаков таких как ;:!@#$% тоисть эти знаки не разбиваются при длином слове а так и остаются вот и написал таких штук 200 и внешний вид коту под хвост | |
|
|
|
|
|
|
|
для: Panker
(15.03.2006 в 19:33)
| | от миллиона пробелов или энтеров или еще чего спасает trim($str);
а миллион "ыыыыыыыыыыыыы" можно разрезать вот так
создаем где-нить такую функцию:
function split_text($matches)
{
return wordwrap($matches[1], 50, ' ',1);
}
а потом обрабатываем строку перед выводом
$str = preg_replace_callback(
"|(\w{100,})|",
"split_text",
$str);
в результате получаем вот что:
ааааааааааааааааааааааааааааааааааа ааааааааааааааааааааааааааааааааааа ааааааааааааааааааааааааааааааааааа ааааааааааааааааааааааааааааааааааа аааааааааааааааа
(эта функция приводилась тут на форуме недавно, поэксперементируй... с числами) | |
|
|
|
|
|
|
|
для: kasmanaft
(15.03.2006 в 19:39)
| | Вот такие решения меня огорчают несказанно. В том числе и в этом форуме.
Потом пишешь совершенно легитимный [urI=http://просто-очень-длинный]адрес[/urI], и тебе его бабах! и разрубили. И накрывается твоя ссылка медным тазом. | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 20:19)
| | Так что же тогда делать?
Оставлять все как есть?
Это ж не дело. | |
|
|
|
|
|
|
|
для: PantiL
(15.03.2006 в 21:46)
| | Конечно, не дело. Но не по живому же резать. | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 21:48)
| | символы не обрезать не как походу символы типа !@#%^ : ;; | |
|
|
|
|
|
|
|
для: PantiL
(15.03.2006 в 21:46)
| | Так что ж велосипед изобретать?
При разборе то что в href стоит оставляем без изменении а текст между тегами обрезаем как пожелаем.
и получаем например следующее
<a href="http://www.the_very_long_domain_name.com">http://www.the_very...name.com</a>
|
И волки сыты и овцы целы :) | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 20:19)
| | Ссылка как раз разрезана не будет - это регулярное выражение затронет только текст вида
ффффффффффффффффффффффффффффффффффф ффффффффффффффффффффффффффффффффффф ффффффффффффффффффффффффффффффффффф ффффффффффффффффффффффффффффффффффф ффффффффффффффффффффффффффффффффффф ффффффффффф | |
|
|
|
|
|
|
|
для: cheops
(16.03.2006 в 00:28)
| | И кто сказал, что я не могу такой текст сделать частью ссылки? | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 01:26)
| | ну если так принципиально, можно посмотреть не находится ли текст между [u r l] и [/u r l ] :) | |
|
|
|
|
|
|
|
для: kasmanaft
(16.03.2006 в 07:20)
| | Не между [urI] и [/urI]. А между <a href=" и "> уже после подстановки. Текст ссылки можно и нужно резать. | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 01:26)
| | Сложнова-то будет это сделать... редко в ссылках используется неразрывная последовательность букв (без точек, слешей, =, %, ? и &) больше 25-35 символов подряд. Наверное можно найти такой URL, но я такой длинный видел только один раз в теме, в которой форумчане соревновались кто длиннее домен найдёт :))) | |
|
|
|
|
|
|
|
для: cheops
(16.03.2006 в 14:01)
| | Часто делают так: ссылку в href подставляют неизменной (главное чтобы она подходила под регулярное выражение), а название сокращают
<a href="http://www.very-very-very-long-domain-name.com/with?long=query&string=1">www.very-very...&string=1</a>
|
| |
|
|
|
|
|
|
|
для: PantiL
(14.03.2006 в 22:10)
| | Думаю, стоит посмотреть на результат работы лебедевского типографа и попытаться наваять скрипт, делающий то же самое. | |
|
|
|