<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

PHP Скрипт обработки номера телефона
17.11.2013 01:26:42 PHP Скрипт обработки номера телефона Сообщение #1
SinnDromm

SinnDromm

Новичок

Новичок

Дата регистрации:
23.07.2013 22:46:56

Сообщений: 1

Здраствуте Михаил.Такой вопрос:Написал небольшой PHP скрипт-обработчик HTML формы и все вроде нормально но не работает проверка номера телефона(тоесть если в поле ничего не вводить то он срабатывает а если ввести какие-то буковки то выдает что все хорошо.(а нужно сделать так,чтоб принимал именно корректный номер телефона и отвергал прочие буквы и символы.)).Посмотрите пожалусто на него и скажите в чем причина Вот собственно этот скрипт
<?php

/*echo $_REQUEST['name']."<br>";
echo $_REQUEST['email']."<br>";
echo $_REQUEST['phone']."<br>";
*/
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$phone = htmlspecialchars($_POST["phone"]);

$myemail = "test@mail";

$name = check_input($_POST["name"], "Введите ваше имя!";
$email = check_input($_POST["email"], "Введите ваш e-mail!";
$phone = check_input($_POST["phone"], "Номер не существует!";

if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
if (!preg_match("/((0|\+3)-?)?\(?\d{3,5}\)?-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}((-?\d{1})?-?\d{1})?/", $phone)
{
show_error("<br /> Е-mail адрес не существует";
show_error("<br /> Номер не существует";
}

$message_to_myemail = "Здравствуйте!
Вашей контактной формой было отправлено сообщение!
Имя отправителя: $name
E-mail: $email
Телефон: $phone
Конец";

$from = "From: $name <$email> \r\n Reply-To: $email \r\n";
mail($myemail, $tema, $message_to_myemail, $from);
?>
<p>Спасибо Ваша заявка принята!</p>
<p>Вернуться На Предыдущую<a href="index.html">Страницу >>></a></p>
<?php
function check_input($data, $problem = ""
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<p>Пожалуйста исправьте следующую ошибку:</p>
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
Профиль
17.11.2013 01:42:12 PHP Скрипт обработки номера телефона Сообщение #2
alexandrdante

alexandrdante

Модератор

Модератор

Дата регистрации:
15.11.2013 15:33:40

Сообщений: 207

какая-то у Вас длинная проверка.

Почему бы не делать вот так?

<?php
if(!preg_match("|^\([0-9]{3}\)[\s][0-9]{3}[-][0-9]{2}[-][0-9]{2}$|",$phone)) exit("Это не номер телефона";
?>


Это ввод номера с дефисами,как видете.Проверяет ещё и на формат.

Можно просто цифры.
<?php
if(!preg_match("|^[0-9]+$|",$icq)) exit("Это не номер телефона";
?>

Например так.



Или же вообще вот так:

$text = 'tel';

if(!preg_match('|^[0-9]+$|i', $tel))
{
echo 'Номер телефона верный илиже переадресовывать на функцию';
}
else
{
echo 'Вы неверно ввели номер телефона';
}



Посмотреть примеры реализации функции preg_match() можно тут:http://htmlweb.ru/php/example/preg.php


Что касается проверки е-мейла,то есть очень интересное свойство PHP именно для данного действия:
Например так:
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{

}
Профиль
11.12.2013 09:00:50 PHP Скрипт обработки номера телефона Сообщение #3
Error 404

Error 404

Продвинутый

Продвинутый

Дата регистрации:
28.07.2013 16:04:47

Сообщений: 48

1.Хотя я и не плохо знаю регулярные выражения, но для таких целей я бы пользовался встроенными функциями.Например функция is_integer($n) либо is_numeric($n) для проверки на целостное число
2. И если бы мне понадобилось конкретная длина телефона, то использовал бы еще функцию strlen($n).
3. А потом, вдруг мне бы еще захотелось чтобы простой номер, например 79145557677 выглядел бы в более в красочном, читабельном варианте, то и тогда бы я воспользовался к примеру этим $number_phone = $n{0}."(".$n{1}$n{2}$n{3}."".$n{4}$n{5}$n{6}."-".$n{7}$n{8}."-".$n{9}$n{10} для отображения 7(914)555-76-77 таким форматом. И все это "засунуть" в собственно-ручно написанную функцию было бы шикарно.
Профиль