Подскажите как решить эту проблему?
Спустя 16 минут, 38 секунд (16.02.2010 - 22:59) DedMorozzz написал(а):
экранируй слэш. Почитай про "экранацию"
Спустя 1 час, 35 минут, 15 секунд (17.02.2010 - 00:34) twin написал(а):
А какие символы запрещены? И кем?
Спустя 1 минута, 51 секунда (17.02.2010 - 00:36) DedMorozzz написал(а):
Походу прег матчем )) Программирование развивает телепатию.
Спустя 19 минут, 10 секунд (17.02.2010 - 00:55) SemenH8 написал(а):
Цитата (twin @ 16.02.2010 - 21:34) |
А какие символы запрещены? И кем? |
Мной запрещены, в частности вот этот - " \ " - например в поле ввода имени или пароля...
Ну, я не знаю, может никто не сталкивался с такой проблемой, может как-то по другому все делается... - тогда прошу подсказки...
Я делаю форму ввода типа text || password, если в поле ввести \, при обновлении страницы, их количество каждый раз удваивается - это не приятно, вот я и хочу запретить ввод этого символа (ну, и других, типа * / ? и т.п.)
Смотрел на счет экранирования, да, записать то его можно, но не помогает это... Например, по краям, я убираю \ с помощью вот такой конструкции:
trim($_REQUEST['user_name'], "\ ");
а вот в средине слова не получается...

Спустя 4 минуты (17.02.2010 - 00:59) DedMorozzz написал(а):
эм...preg_match пробовал?
Спустя 24 минуты, 11 секунд (17.02.2010 - 01:23) SemenH8 написал(а):
Вот, спасибо
- отпробовал: работает, начиная с такого вида: "/\\\/"

Спустя 5 часов, 35 минут, 23 секунды (17.02.2010 - 06:59) twin написал(а):
Ну во первх, эта штука лезет у тебя из за включенных магических кавычек. Просто положи в корень сайта файл .htaccess вот такого содержания:
Но я почему спросил - это не решит всех проблем. Если ты начал чего то запрещать не в плане модерации, а в плане безопасности, то дыры все равно останутся, а качество скрипта ухудшится на много. Вот это почитай.
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
Но я почему спросил - это не решит всех проблем. Если ты начал чего то запрещать не в плане модерации, а в плане безопасности, то дыры все равно останутся, а качество скрипта ухудшится на много. Вот это почитай.
Спустя 6 часов, 15 минут, 8 секунд (17.02.2010 - 13:14) SemenH8 написал(а):
Спасибо огромное, очень интересно и познавательно (правда понятно пока не все...) - общее представление получено.
Ну вот например, часть формы ввода имени пользователя:
и
если пользователь вводит \, preg_match покажет 1 и произойдет присвоение $user_name пустой строки - т.е. поле ввода имени опять окажется пустым, иначе (если запрещенных символов нет) значение $user_name будет отображаться.
Запрещать начал в плане модерации - не хочется видеть имена типа <*>\bublik/<*>
Ну вот например, часть формы ввода имени пользователя:
if (preg_match("/\\\/", $user_name)==1) {$user_name="";}
и
<FORM METHOD=POST ACTION='...'>
<TABLE border='0'>
<TR>
<TD width='150' align='right'>Имя пользователя: * </TD>
<TD><INPUT TYPE='text' NAME='user_name' maxlength='16' value='$user_name' title='запрещенные знаки: \" / \ ? < > '></TD>
<TD>{$ok_no1}</TD>
</TR>
</TABLE>
если пользователь вводит \, preg_match покажет 1 и произойдет присвоение $user_name пустой строки - т.е. поле ввода имени опять окажется пустым, иначе (если запрещенных символов нет) значение $user_name будет отображаться.
Запрещать начал в плане модерации - не хочется видеть имена типа <*>\bublik/<*>

Спустя 6 минут, 35 секунд (17.02.2010 - 13:20) twin написал(а):
Ты не сможешь запретить все бяки, их тысячи.
Вот с этим как собираешься бороться?
עִבְרִית
Если в плане модерации, нужно разрешить то что можно, а остальное запретить.
Вот с этим как собираешься бороться?
עִבְרִית
Если в плане модерации, нужно разрешить то что можно, а остальное запретить.
Спустя 2 минуты, 51 секунда (17.02.2010 - 13:23) DedMorozzz написал(а):
открой для себя preg_replace, если хочешь заменять 
И Твин совершенно прав. Проще сделать диапазон допустимых символов, чем базу данных запрещённых. Иначе все символы типа : ћ·™.......... надо "выписывать"

И Твин совершенно прав. Проще сделать диапазон допустимых символов, чем базу данных запрещённых. Иначе все символы типа : ћ·™.......... надо "выписывать"
Спустя 55 минут, 52 секунды (17.02.2010 - 14:19) SemenH8 написал(а):
Ну вот, попробовал разрешить только буквы и цифры, но данная конструкция не работает:
Я ее понимаю так: если preg_match находит символ не соответствующий "/[a-z0-9а-я]/i" - выдается 1 иначе 0 - или я не правильно понимаю? (скорее всего)
if (!preg_match("/[a-z0-9а-я]/i", $user_name)) echo "STOP!!!"; else echo "OK!!!";
Я ее понимаю так: если preg_match находит символ не соответствующий "/[a-z0-9а-я]/i" - выдается 1 иначе 0 - или я не правильно понимаю? (скорее всего)
Спустя 34 минуты, 26 секунд (17.02.2010 - 14:53) DedMorozzz написал(а):
мм...у тя можно ввести только 1 символ. поставь + плсде закрытой квадратной скобки. Иль {1,100} это от 1го до 100 символов, а ещё лучше - почитай про регулярные выражения. Там много чего интересного
Спустя 16 минут, 32 секунды (17.02.2010 - 15:10) twin написал(а):
Так попробуй
if (!preg_match("/^[a-z0-9а-яё\s-]+$/i", $user_name)) echo "STOP!!!"; else echo "OK!!!";