kreo_OL
@kreo_OL
Медузко -_-

Что не так с кодом отправки email на php?

Проблема:
При нажатие на кнопку отправки формы обратной связи, происходит перезагрузка страницы с выводом данным в адресную строку и все.
И собственное не какое сообщение на почту не приходит -_-
Вот код формы
<form id="form">
						   <input name="name" placeholder="Ф.И.О." class="textbox" required />
						   <input name="phone" placeholder="Телефон:" class="textbox" required />
						   <input name="email" placeholder="Email:" class="textbox" type="email" required />
						   <textarea name="messag" rows="4" cols="50"  placeholder="Введите ваше сообщение и мы обязательно с вами свяжемся!" class="message" required></textarea>
						   <input class="button" type="submit" value="Отправить" />
						</form>

вот js
<script type="text/javascript">
		$(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("Ваше сообщение отправлено!");
					});
			});
		});    
	</script>


Вот файл send.php
<?
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['email'])&&$_POST['email']!="")&&(isset($_POST['messag'])&&$_POST['messag']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
        $to = 'ark.tarusov@gmail.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
        $subject = 'Обратный звонок'; //Заголовок сообщения
        $date=date("d.m.y"); // число.месяц.год 
		$time=date("H:i"); // часы:минуты:секунды 
		$message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                    <body>
			<p>Сообщение: '.$_POST['messag'].'</p>
                        <p>Имя: '.$_POST['name'].'</p>
                        <p>Телефон: '.$_POST['phone'].'</p>     
			<p>Email: '.$_POST['email'].'</p>   						
                    </body>
                </html>'; //Текст нашего сообщения можно использовать HTML теги
        $headers = 'MIME-Version: 1.0' . "\r\n";
		$headers .= "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
        $headers .= "From: Отправитель <.$_POST['email'].>\r\n"; //Наименование и почта отправителя
		
		$f = fopen("message.txt", "a+"); 
		fwrite($f," \n $date $time Сообщение от $name"); 
		fwrite($f,"\n $message "); 
		fwrite($f,"\n ---------------"); 
		fclose($f); 


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

}
?>


Это уже третья вариация js и php попробованная мной.
Для теста создал вот такой файлик
<?
   mail("ark.tarusov@gmail.com", "Шествие лемингов", "Тушканчики лемингуют!");
?>

Сообщение пришло.
В чем собственно причина?

P.S. Кстати в php файл вставлен код для создания txt файла с сообщениями на хостинге. и в этот файл и=так же не чего не вносится -_-
  • Вопрос задан
  • 690 просмотров
Решения вопроса 1
werty1001
@werty1001
undefined
$(document).ready(function(){
	$("#form").submit(function() {
		$.ajax({
			type: "POST",
			context: this,
			url: "send.php",
			data: $(this).serialize(),
			error: function() {
				alert("Ошибка!");
			},
			success: function() {
				alert("Ваше сообщение отправлено!");
			}
		});
		return false;
	});
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Для начала надо определить где ошибка
Без условий php-файл если запустить - сообщение придет?
В консоли есть ошибки о js?

Форма будет перезагружаться, чтобы предотвратить:

$("#form").submit(function() { //устанавливаем событие отправки для формы с id=form
          var form_data = $(this).serialize(); //собираем все данные из формы
          $.ajax({
          type: "POST", //Метод отправки
          url: "send.php", //путь до php фаила отправителя
          data: form_data,
          success: function() {
               //код в этом блоке выполняется при успешной отправке сообщения
               alert("Ваше сообщение отправлено!");
          });
          return false; // ПРЕДОТВРАЩАЕМ ПЕРЕЗАГРУЗКУ
      });
Ответ написан
Комментировать
Gavr23
@Gavr23
php, mysql, html
$("#form").submit(function(event){
		event.preventDefault();
//далее ваш код
});

Попробуйте так
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы