Задать вопрос

Почему форма не отправляется на email?

Имеется код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
<meta name='author' content='Дмитрий Давыдов' />
<meta name='copyright' content='2015 - Smartlanding.biz' />

 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="stylesheet" href="css/remodal.css">
 <link rel="stylesheet" href="css/remodal-default-theme.css">
 <link href='https://fonts.googleapis.com/css?family=Roboto:400,300,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
 <link rel="stylesheet" type="text/css" href="style.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="js/remodal.min.js"></script>
<script src="js/script.js"></script>

</head>
<body>

<div class="home">
  <p><a class="mainButton" href="#modal">Оставить заявку</a></p>
</div>

<div class="remodal" data-remodal-id="modal" role="dialog" aria-labelledby="modal1Title" aria-describedby="modal1Desc">
 <div class="remodalBorder">
  <p><img src="img/sendico.png"></p>
  <button data-remodal-action="close" class="remodal-close" aria-label="Close"></button>
      <form id="form">
        <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2>
        <input type="text" class="putName" name="name" placeholder="Ваше ваше имя" required>
        <input name="phone" type="tel" class="putPhone" placeholder="Введите номер телефона" required>



          <script type="text/javascript">

 var australia = new Array("HSU-07HEK303R2 HSU-07HUN103R2","HSU-09HEK203R2 / HSU-09HUN03R2","HSU-12HEK203R2 HSU-12HUN03R2","HSU-18HEK203R2 HSU-12HUN03R2");
 var bagams= new Array("RS-07AST1","RS-09AST1","RS-12AST1","RS-18AST1");
 var egi= new Array("KSGMA21HFAN1","KSGMA26HFAN1","KSGMA35HFAN1","KSGMA53HFAN1");
 var cen= new Array("5807","5809","5812","5818");
 var selIndex= 0;
 var len;

 function Remove_option_from_select()
 {
  var len= document.getElementById("resort").options.length;

  if(len>0)
  {
         var ResortObj_r = document.getElementById("resort");

            for (var n = len-1; n>-1; n--)
	      {

              // получаем индекс выбранного элемента
	         if (ResortObj_r.options[n].selected==true)
	         {
                ResortObj_r.remove(n);
	         }

           }

  }else
       {
         alert("Удалять нечего - список пуст");
       }

 }




	function Add_option_to_select()
	{
	   var CountryObj = document.getElementById("SelectMyLove");
	   var ResortObj = document.getElementById("resort");
	   var selind = CountryObj.options.selectedIndex;

	 switch (selind)
	  {
	  case 0:
	     ResortObj.options.length = 0;
	    break;
	  case 1:
	       ResortObj.options.length = 0;

	    len= australia.length;
	   // alert(len);
	    for (var n = 0; n < len; n++)
	    {
	       ResortObj[n] = new Option(australia[n], n);
	    }


	    break;
	  case 2:
	       ResortObj.options.length = 0;

	       len= bagams.length;

	    for (var n = 0; n < len; n++)
	    {
	       ResortObj[n] = new Option(bagams[n], n);
	    }
	    break;
	    case 3:
	           ResortObj.options.length = 0;

	      len= bagams.length;

	    for (var n = 0; n < len; n++)
	    {
	       ResortObj[n] = new Option(egi[n], n);
	    }

	    break;
	    case 4:
	    	ResortObj.options.length = 0;

	      len= bagams.length;
	    break;
	    for (var n = 0; n < len; n++)
	    {
	       ResortObj[n] = new Option(cen[n], n);
	    }
 		var selIndex=selind;
	 }



 }

  function Present()
 {
    var ResortObj_Pres = document.getElementById("resort");
    var len= ResortObj_Pres.options.length;

   if(len>0)
   {
        ResortObj_Pres.options[len] = new Option("Вы едете бесплатно!", len);

       ResortObj_Pres.options[len].style.color="red";

   }else
         {
         	alert("Сейчас список курортов пуст элемент добавляется в конец списка!");
         }


 }

  </script>

 <FORM id="country" name="country" method="GET" action="select_b.php" >
<table>
<tr><td valign="top" id="select_cond">
Выберете кондиционер
<br /><br />
<SELECT name="SelectMyLove" id="SelectMyLove" onChange="Add_option_to_select();">
<OPTION VALUE="1">Выберете марку</OPTION>
<OPTION VALUE="2">Haier</OPTION>
<OPTION VALUE="3">Rovex</OPTION>
<OPTION VALUE="4">Kentatsu</OPTION>
<OPTION VALUE="5">Centek</OPTION>
</SELECT>
</td>
<td valign="top" id="select_cond">
Список кондиционеров:
<br /><br />
<SELECT name="resort[]" id="resort" multiple size="5" style="width:250px;"></SELECT>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</FORM>
        <input type="submit" name="submit" class="btn" value="ОТПРАВИТЬ">
        <input type="hidden" name="formData" value="Заявка с сайта">
    </form>
</div>
</div>


</body>
</html>


и код php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
    if (isset($_POST['SelectMyLove']))  {$SelectMyLove = $_POST['SelectMyLove'];}
    if (isset($_GET['selIndex'])){$selIndex = $_GET['selIndex'];}


    $to = "fayzrakhman7@gmail.com"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "smart-landing@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "$formData";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone <br><b>Марка кондиционера</b> $SelectMyLove <br><b>Номер (см.табличку)</b> $selIndex";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '<center><p class="success">Спасибо за отправку вашего сообщения!</p></center>';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>

с помощью него выполняется отправление. Но почему то ничего не приходит. Я думаю до php даже не доходит, т.к.
if ($send == 'true')
    {
    echo '<center><p class="success">Спасибо за отправку вашего сообщения!</p></center>';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}

Здесь ничего не вылазит.
  • Вопрос задан
  • 332 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
У вас беда с тегами <form>, получается две формы вложенные одна в другую. При этом не заданы action и method (по дефолту метод GET, а ваш скрипт ожидает POST). Уберите лишние теги <form> и </form> и задайте action (если только форму не отдает тот же скрипт, что ее обрабатывает) и method="post".
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Владимир Дубровин конечно красавец что не поленился все эти портянки разматывать, но вообще у Вас бардак в коде, возьмите нормальную иде, которая понимает синтаксис, и код организуйте современнее немного, а не как в 90е. Тогда будет меньше таких ошибок из за неаккуратного ввода.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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