Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2015, 16:30
Интересующийся
Отправить личное сообщение для TRIGUN Посмотреть профиль Найти все сообщения от TRIGUN
 
Регистрация: 13.04.2014
Сообщений: 26

Простая форма отправки почты
Добрый день всем.

Прошу помочь немного доделать скрипт отправки почты:

php:
<?php

$recepient = "почта получателя";
$sitename = "название сайта";

$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";

$pagetitle = "Новая заявка с сайта \"$sitename\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");

?>


javascript:
$(document).ready(function() {

	$("#form").submit(function() {
		$.ajax({
			type: "POST",
			url: "php/mail.php",
			data: $(this).serialize()
		}).done(function() {
			$(this).find("input").val("");
			alert("Спасибо за заявку! Скоро мы с вами свяжемся.");
			$("#form").trigger("reset");
		});
		return false;
	});
	
});


html:
<form id="form">
<input type="text" pattern="^[А-Яа-яЁё\s]+$" name="name" placeholder="Как вас зовут" id="bottom_form_name" name="name" class="form_name" required />
<input type="text" pattern="[0-9]{5,11}" name="phone" placeholder="Ваш телефон" id="bottom_form_phone" name="phone" class="form_phone" required />
<button class="button"></button>
</form>


Вопрос:
1. После отправки данных, почему то не выводится никакого сообщения, хотя в js вывод присутствует. Хотя бы тултипа хватило бы, мол, ваше сообщение отправлено.
2. Если ставить форму ниже шапки, то после отправки данных обязательно перекинет вверх страницы.
3. Никак не могу добавить адрес/имя отправителя письма. В итоге приходит адрес хостинга.
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2015, 17:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

pattern="^[А-Яа-яЁё\s]+$" - это удобно, но не отменяет правила - сервер обязан проверять данные пришедшие извне, не важно проверялись они на клиенте или нет.

$pagetitle = "Новая заявка с сайта \"$sitename\""; - так не пойдет, кодировать нужно тему сообщения, иначе не обязательно почтовый сервер или клиент пришлет ее в читаемом виде.

Сообщение от TRIGUN
Никак не могу добавить адрес/имя отправителя письма. В итоге приходит адрес хостинга.
Для этого нужно передать в качестве параметра свой адрес предварив его -f, то есть, например

mail('sample@mail.ru', 'subj', 'msg', 'headers', '-finf@my.ru')

Но это будет работать, если пользователь добавлен в доверенные в конфигурации sendmail. Иначе обращайтесь в техподдержку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма отправки сообщения с сайта hardwolf Элементы интерфейса 20 24.10.2016 15:00
форма отправки для сайта redboy5060 Общие вопросы Javascript 3 20.08.2015 05:04
форма отправки для сайта redboy5060 Общие вопросы Javascript 0 19.08.2015 18:57
простая форма авторизации sedoyksa Общие вопросы Javascript 5 01.10.2011 22:29
Окно Shadowbox и форма отправки письма loen Общие вопросы Javascript 1 16.05.2011 20:33