Форма отправки мобильного номера на почту. Помогите.

NewJey
На сайте с 21.11.2009
Offline
113
2928

Добрый день.

Помогите разобраться, я ещё новичёк в этом деле, подскажите что куда.

Вообщем делаю форму отправки мобильного номера на почту. Такого плана:

Вообщем вроде бы ничего сложного, но что-то не выходит у меня.

Делаю так:

Сама форма+ скрипт (маска телефона и убираем перезагрузку страницы)

<html><body>
<head>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="jquery.maskedinput.min.js"></script>
</head>
<form id="form" class="form">
<input type="text" id="phone" placeholder="(xxx)xxx-xxxx"/>
<input type="submit" value="Заказать звонок"/>
</form>
<script type="text/javascript">
jQuery(function($){
$("#phone").mask("(999) 999-9999");
});
$(document).ready(function () {
$("#form").submit(function () { //устанавливаем событие отправки для формы с id=form
var form_data = $(this).serialize(); //собераем все данные из формы
$.ajax({

type: "POST", //Метод отправки
url: "send.php", //путь до php фаила отправителя
data: form_data,
success: function () {
//код в этом блоке выполняется при успешной отправке сообщения
alert("Ваше сообщение отпрвлено!");
},
error: function (xhr, str) {
alert('Возникла ошибка: ' + xhr.responseCode);

}
}); return false;
});
});
</script>
</body></html>

и скрипт отправки на почту данных:

<?

if(isset($_POST['phone'])&& $_POST['phone']!=""){ //Проверка отправилось ли наше поля name и не пустые ли они
$to = 'admin@host.net'; //Почта получателя, через запятую можно указать сколько угодно адресов
$subject = 'Быстрый заказ'; //Загаловок сообщения
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Телефон: '.$_POST['phone'].'</p>
</body>
</html>'; //Текст нащего сообщения можно использовать HTML теги
$headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
$headers .= "From: Письмо <adres@gmail.com>\r\n"; //Наименование и почта отправителя
mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>

Что не работает:

- проверка номера, отправляет и буквы и всё что угодно

- Не выводит Спасибо после отправки номера вместо самой формы

- не знаю как отправлять урл в письме с которого была отправка данных (ну что бы знать с какой страницы человек отправлял номер)

Спасибо.

sma858
На сайте с 07.07.2009
Offline
95
#1
- не знаю как отправлять урл в письме с которого была отправка данных (ну что бы знать с какой страницы человек отправлял номер)

попробуйте добавить это:

Отправлено со страницы: {$_SERVER['HTTP_REFERER']}

- проверка номера, отправляет и буквы и всё что угодно

Скрипт открывается если нажать на его путь при просмотре исходного кода страницы?:

<script src="jquery.maskedinput.min.js"></script>
Надежный хостинг (https://vk.cc/7dSRDI) от ребят из RuWeb. Доступные тарифы, высокий аптайм, 24/7. Есть много серверов, в т.ч. Москва, Нижний Новгород.
TF-Studio
На сайте с 17.08.2010
Offline
321
#2

раз

два: type="tel" required="required"

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
NewJey
На сайте с 21.11.2009
Offline
113
#3

Спасибо всем за помощь, разобрался, поисправлял ошибки, чуть дописал и всё заработало.

NewJey
На сайте с 21.11.2009
Offline
113
#4

Возник ещё вопрос как принятые данные после отправки на почту записать в файл.

Делаю так:

<?

$data['model'] = $product_info['model'];

if(isset($_POST['contact_phone'])&& $_POST['contact_phone']!=""){ //Проверка отправилось ли наше поля name и не пустые ли они

$to = 'admin@admin.com'; //Почта получателя, через запятую можно указать сколько угодно адресов

$subject = 'Быстрый заказ'; //Загаловок сообщения

$message = '

<html>

<head>

<title>'.$subject.'</title>

</head>

<body>

<p>Телефон: '.$_POST['contact_phone'].'</p>

<p>Название: '.$_POST['name'].'</p>

<p>Модель: '.$_POST['model'].'</p>

<p>Цена: '.$_POST['price'].'</p>

</body>

</html>'; //Текст нащего сообщения можно использовать HTML теги

$headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма

$headers .= "From: Письмо <admin@admin.com>\r\n"; //Наименование и почта отправителя

mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail

}

// Принимаем данные с формы

$phone=$_POST['contact_phone'];

$msg="$phone";

// Сохраняем в базу данных

$f = fopen("system/storage/logs/phone.txt", "a+");

fwrite($f,"\n $msg ");

fclose($f);

?>

Задача писать только поле contact_phone в файл и каждая запись с новой строки.

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