Блокировка по символам
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Блокировка по символам - 2009-11-25 20:05:31.280000
|
|
|
_Pyint0_
Сообщений: 394
Оценки: 0
Присоединился: 2008-12-11 19:02:23.436666
|
Как на PHP сделать так, что-бы была блокировка на символы? Т.е. у меня на сайте в форме можно в качестве имени ввести '1' или 'V@СЯ'. Т.е. Как сделать так, что-бы заблокировать такую возможность? Буду рад за помощь.
|
|
|
RE: Блокировка по символам - 2009-11-25 20:22:53.353333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Выведи список всех запрещенных символов для начала. Ну или хоть назови их как-то или задай диапазон. А то вопрос пока более чем тупенький
|
|
|
RE: Блокировка по символам - 2009-11-25 21:25:30.003333
|
|
|
_Pyint0_
Сообщений: 394
Оценки: 0
Присоединился: 2008-12-11 19:02:23.436666
|
' " < > % ! $ ^ & * ` = \ / - 1 2 3 4 5 6 7 8 9 вот эти символы. Нужно чтобы скрипт проверял на их наличие. Если есть, вывести сообщение.
|
|
|
RE: Блокировка по символам - 2009-11-25 22:39:04.573333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
<?php
function spec($stroka) {
for($i=0;$i<strlen($stroka);$i++) {
if(!preg_match("#[\sa-z]#i",$stroka{$i})) return false;
}
return true;
}
$a = "lala";
if (spec($a)) echo "Ok";
else echo "Error";
?>
|
|
|
RE: Блокировка по символам - 2009-11-26 09:01:45.896666
|
|
|
Parano1d
Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
|
жесть, посимвольно сравниваешь %)
|
|
|
RE: Блокировка по символам - 2009-11-26 09:32:29.903333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
quote:
ORIGINAL: Parano1d жесть, посимвольно сравниваешь %) предложи свой оптимальный бесплатный рабочий вариант :) Шучу, конечно можно и так: quote:
<?php $a = "lala la!"; if(preg_match("#[^\sa-z]#i",$a)) echo "Error"; else echo "Ok"; ?>
|
|
|
RE: Блокировка по символам - 2009-11-26 10:46:38.193333
|
|
|
Agent Smith
Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
|
<?
function clean_string($string, $letters=0)
{if (!$letters)
$letters= array("'","\"","<",">","%","!","\$","^","&","*","`","=","\\","/","-","1","2","3","4","5","6","7","8","9");
$test=str_split($string);
foreach ($test as $key=>$value)
{
if (in_array($value, $letters))
{
return false;
}
}
return true;
}
/******************Пример работы***********************/
if (clean_string("Вася"))
{
echo "ok";
}
else
{
echo "bad";
}
?>
Я так писал в свое время. Данный скрипт не пропускает указаные символы, но зато может пропустить такие символы, как римується или 棘?? 極?逵勻龜? 極棘剋
|
|
|
RE: Блокировка по символам - 2009-11-26 18:22:44.056666
|
|
|
_Pyint0_
Сообщений: 394
Оценки: 0
Присоединился: 2008-12-11 19:02:23.436666
|
Полностью согласен. Но ведь есть ещё и функции для обработки строк.
|
|
|
RE: Блокировка по символам - 2009-11-30 18:47:25.160000
|
|
|
lit87
Сообщений: 13
Оценки: 0
Присоединился: 2009-11-23 20:15:36.443333
|
if(eregi("[^0-9a-z]",$login)) { echo "Вы ввели недопустимые символы! Допустимые 0-9a-z" }
|
|
|
RE: Блокировка по символам - 2009-12-01 12:49:34.083333
|
|
|
Agent Smith
Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
|
quote:
ORIGINAL: lit87 if(eregi("[^0-9a-z]",$login)) { echo "Вы ввели недопустимые символы! Допустимые 0-9a-z" } Ты не совсем прав, потому что ты пропускаеш строку только с символами 0-9a-z, а если ещё нужно кирилицу, умляуты и др. символы, то так не выйдет. Не будешь же все символы перечислять. Хотя, я не сомневаюсь, что автору этого будет достаточно.
|
|
|
RE: Блокировка по символам - 2009-12-01 17:49:24.420000
|
|
|
lit87
Сообщений: 13
Оценки: 0
Присоединился: 2009-11-23 20:15:36.443333
|
а в чем проблема добавить а-яЁ и прочее что нужно можно сделать тогда наоброт, чтобы оно реагировало на запрещенные символы, но тогда в любом случае запрещенные символы будеш дольше перечислять чем задать пару множеств удовлетворяющих
|
|
|
|
|