Strict Standards: Resource ID#30 used as offset, casting to integer (30) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#32 used as offset, casting to integer (32) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Вопросы по анализу символов в переменной PHP
ТвойWeb » WebMaster класс » PHP/Perl » Вопросы по анализу символов в переменной PHP

Страниц (1): [1]
 

1. UFO - 09 Февраля, 2007 - 12:39:21 - перейти к сообщению
1) Как определить кол-во символов в слове, которая содержит переменная? Нужно для того, чтобы проверить, если юзер ввел в форму символов меньше/больше числа N/M, то
CODE:
echo "Логин/пароль не может быть короче/длиннее N/M символов";

Интересуют именно два варианта: больше и меньше, чтобы кол-во символов было лимитировано.
2) Интересует еще такой вопрос. Как проверить, что в введенных пользователем данных не содержится не допустимых символов, а есть только допустимые, а именно a-z, A-Z, 0, 1-9, -, _ Это вроде можно реализовать с помощью функций preg_match и/или preg_replace, но как их использовать в операторе if и как составлять список допустимых символов не понятно. Например, конструкция
CODE:
if (($pass=preg_replace("/[^a-z]{10}/i","",$pass)) or ($login=preg_replace("/[^a-z]{10}/i","",$login)) or ($email=preg_replace("/[^a-z]{10}/i","",$email)))
{
echo "В введенных данных содержатся недопустимые символы";
exit;
}

не работает. Зато по отдельности:
CODE:
$pass = preg_replace("/[^a-z]{10}/i","",$pass);
$login = preg_replace("/[^a-z]{10}/i","",$login);
$email = preg_replace("/[^a-z]{10}/i","",$email);

работает, но выводит ошибку PHP, а хотелось бы вывести ошибку через
CODE:
echo

чтобы юзер мог прочесть и понять, что ввел не то, что нужно.
2. starmaster - 10 Февраля, 2007 - 16:00:28 - перейти к сообщению
UFO пишет:
1) Как определить кол-во символов в слове, которая содержит переменная? Нужно для того, чтобы проверить, если юзер ввел в форму символов меньше/больше числа N/M, то


if (strlen($string) >= $N and strlen($string) <= $M)
{
...
}

2)
if (preg_match("/^[a-z0-9_-]+$/i", $string))
{
...
}
3. awep - 10 Февраля, 2007 - 16:07:35 - перейти к сообщению
смотри файл register.php форума ExBB 1.9.1. строки 100-104. наглядно расписано.
4. TvoyWeb - 20 Февраля, 2007 - 00:11:33 - перейти к сообщению
UFO
CODE:
if (preg_match("#[^A-Za-z0-9\-_]#is",$login)) {
echo "Недопустимые символы!";
}
5. UFO - 26 Февраля, 2007 - 09:10:41 - перейти к сообщению
Всем спасибо! Хорошо Улыбка
Функцию preg_match юзаю из поста TvoyWeb Улыбка Ибо ясно и понятно Подмигивание

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0389]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33