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

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

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

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Вопросы по анализу символов в переменной PHP
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Описание: Как определить кол-во символов в переменной, а также функции preg_match и preg_replace
UFO
Отправлено: 09 Февраля, 2007 - 12:39:21
Post Id



Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005  

Карма 0




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

чтобы юзер мог прочесть и понять, что ввел не то, что нужно.

(Отредактировано автором: 09 Февраля, 2007 - 12:42:00)

 
 Top
starmaster
Отправлено: 10 Февраля, 2007 - 16:00:28
Post Id



Newbie


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2004  

Карма 0




UFO пишет:
1) Как определить кол-во символов в слове, которая содержит переменная? Нужно для того, чтобы проверить, если юзер ввел в форму символов меньше/больше числа N/M, то


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

2)
if (preg_match("/^[a-z0-9_-]+$/i", $string))
{
...
}
 
 Top
awep
Отправлено: 10 Февраля, 2007 - 16:07:35
Post Id



Наш человек


Покинул форум
Сообщений всего: 304
Дата рег-ции: Дек. 2005  
Откуда: Казань

Карма 6




смотри файл register.php форума ExBB 1.9.1. строки 100-104. наглядно расписано.
 
 Top
TvoyWeb Администратор
Отправлено: 20 Февраля, 2007 - 00:11:33
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




UFO
CODE:
if (preg_match("#[^A-Za-z0-9\-_]#is",$login)) {
echo "Недопустимые символы!";
}
 
 Top
UFO
Отправлено: 26 Февраля, 2007 - 09:10:41
Post Id



Full Member


Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005  

Карма 0




Всем спасибо! Хорошо Улыбка
Функцию preg_match юзаю из поста TvoyWeb Улыбка Ибо ясно и понятно Подмигивание
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.0327]     [ 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