Добавить строчку в коде

Amigochief
На сайте с 30.06.2008
Offline
100
563

Форма обратной связи, подскажите, пожалуйста строчку, чтобы номер телефона ($tel) проверялся на валидность. Т.е. в поле можно писать символы (+-()) и цифры кроме букв, если в поле есть хоть одна буква, пользователь увидит надпись "номер не корректен". С preg_match что то крутил крутил, постоянно ошибки выдаёт.

Спасибо

<?

$name = @ trim ($_POST['name']);
$tel = @ trim ($_POST['tel']);
$more = @ trim ($_POST['more']);
$addr = @ trim ($_POST['addr']);
$city = @ trim ($_POST['city']);
$strana = @ trim ($_POST['strana']);
$index = @ trim ($_POST['index']);
$tov = @ trim ($_POST['tov']);
$email = @ trim ($_POST['email']);

if (! $name or ! $addr) exit ('бла бла бла');

mail ("mail@mail.com",
"tema (OT: $name)",
"$more \n\n KOHTAKTbI: \n $tel \n $addr \n $city \n $index \n $strana \n $tov \n $email");
header ("Location: http://site.ru");
?>
sashka_
На сайте с 27.01.2010
Offline
103
#1

if (preg_match("#[a-zа-я]#i",$tel)) exit("номер не корректен");

попробуй так.

Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
MD
На сайте с 11.04.2010
Offline
22
#2

Amigochief, sashka_, Фишка в том, что надо ещё проверять последовательность символов... если мы просто разрешим использовать (+-()) и цифры, то что помешает пользователю ввести номер вида "5+(017) 454+45-45" ?

Рекомендую посмотреть здесь

Ну или вот темка на хабре

Amigochief
На сайте с 30.06.2008
Offline
100
#3
sashka_:
if (preg_match("#[a-zа-я]#i",$tel)) exit("номер не корректен");

попробуй так.

Спасибо! работает!

mago de sombra:
Amigochief, sashka_, Фишка в том, что надо ещё проверять последовательность символов... если мы просто разрешим использовать (+-()) и цифры, то что помешает пользователю ввести номер вида "5+(017) 454+45-45" ?

Рекомендую посмотреть здесь
Ну или вот темка на хабре

на данный момент важно чтоб без букв, а дальше буду ковыряться

MD
На сайте с 11.04.2010
Offline
22
#4

Amigochief, лучше сразу думайте, как сделать правильно. Тем более, что пища для размышлений есть.

А этот костыль с символами гроша ломанного не стоит.

Amigochief
На сайте с 30.06.2008
Offline
100
#5

mago de sombra, вот понравился коммент с хабра. Стоит форма в интернет магазине и тоже как бы клиентов не хотелось бы терять, а вот защита от ботов пойдёт, а то стали приходить бредовые сообщения через форму заказа.

Извините, но у вас велосипед марки «инвалидная коляска».
Ваше решение ужасно по многим пунктам, в т.ч. описанным в топикам.
Пользователь введёт телефон «8-926-123-45-67». И что ему сообщит? Что это неправильный номер? Но как это может быть неправильным номером, если ему только что на него звонила мама?
А то, что для вас не существует других телефонов кроме московских — тоже показательно.
И еще ваша регулярка всё-равно не защитит от таких значений, как «8(000)0000000»
Так что послушайте советов в топике — не делайте таких глупых проверок. Достаточно проверки на длину. Иначе просто потеряете потенциального клиента.
А во время ввода — автоматически подгонять формат к нужному.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий