@Rozetka01
Только начал осваивать IT

Почему когда заходишь на сайт, обратная связь сразу отправляет сообщение?

Здравствуйте, у меня возникла проблема. Она заключается в том, что когда заходишь на сайт, обратная связь сама сразу высылает эк. сообщение на почту без заполнение информации и нажатии кнопки выслать и так постоянно(в общем стоит зайти на сайт, как отсылается сообщение). Это конечно не так критично, но хочется исправить.

<div id="contacts">
		<h6>Записывайтесь на бесплатную консультацию</h6>
  <form action="./mail.php" method="post">
  <fieldset>
  <legend></legend>
 
  <input type="text" name="name">
  <h13>Имя:</h13>
  <input type="text" name="email">
  <h13>E-mail:</h13>
  <input type="text" name="phone">
  <h13>Номер телефона:</h13>
  <textarea rows="10" cols="45" name="message"></textarea>
  <input type="submit" value="Отправить сообщение">
  </fieldset>
  </form>

	</div>


<?php

require "index.html";
header('Content-type: text/plain; charset=utf-8');

$to = "damirgaliev587@gmail.com"; 
$tema = "Форма обратной связи на PHP"; 
$message = "Ваше имя: ".$_POST['name']."<br>";
  $message .= "E-mail: ".$_POST['email']."<br>"; 
$message .= "Номер телефона: ".$_POST['phone']."<br>"; 
$message .= "Сообщение: ".$_POST['message']."<br>"; 
$headers  = 'MIME-Version: 1.0' . "\r\n"; 
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
mail($to, $tema, $message, $headers); 

?>
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 3
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Добавьте проверку на существование переменных $_POST:
<?php

require "index.html";
header("Content-type: text/plain; charset=utf-8");

if (
	$_SERVER['REQUEST_METHOD'] == "POST" &&
	isset($_POST["name"]) && 
	isset($_POST["message"])
) {
	$to = "damirgaliev587@gmail.com";
	$tema = "Форма обратной связи на PHP";
	$message = "Ваше имя: " . $_POST["name"] . "<br>";
	$message .= "E-mail: " . $_POST["email"] . "<br>";
	$message .= "Номер телефона: " . $_POST["phone"] . "<br>";
	$message .= "Сообщение: " . $_POST["message"] . "<br>";
	$headers = "MIME-Version: 1.0" . "\r\n";
	$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";
	mail($to, $tema, $message, $headers);
}
?>
Ответ написан
Комментировать
@alekssamos
Программист любитель
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    header('Content-type: text/plain; charset=utf-8');
    $to = "damirgaliev587@gmail.com"; 
    $tema = "Форма обратной связи на PHP"; 
    $message = "Ваше имя: ".htmlspecialchars($_POST['name'])."<br>";
      $message .= "E-mail: ".htmlspecialchars($_POST['email'])."<br>"; 
    $message .= "Номер телефона: ".htmlspecialchars($_POST['phone'])."<br>"; 
    $message .= "Сообщение: ".htmlspecialchars($_POST['message'])."<br>"; 
    $headers  = 'MIME-Version: 1.0' . "\r\n"; 
      $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
    mail($to, $tema, $message, $headers); 
}
header('Location: index.html');
?>
Ответ написан
Комментировать
TheBeJIIHiu
@TheBeJIIHiu
Просто обычный кодер?
Попробуй все реализовать в одном файле на mail.php

<?php
header('Content-type: text/plain; charset=utf-8');

$to = "damirgaliev587@gmail.com"; 
$tema = "Форма обратной связи на PHP"; 
$message = "Ваше имя: ".$_POST['name']."<br>";
  $message .= "E-mail: ".$_POST['email']."<br>"; 
$message .= "Номер телефона: ".$_POST['phone']."<br>"; 
$message .= "Сообщение: ".$_POST['message']."<br>"; 
$headers  = 'MIME-Version: 1.0' . "\r\n"; 
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
mail($to, $tema, $message, $headers); 

?>
<div id="contacts">
    <h6>Записывайтесь на бесплатную консультацию</h6>
  <form action="./mail.php" method="post">
  <fieldset>
  <legend></legend>
 
  <input type="text" name="name">
  <h13>Имя:</h13>
  <input type="text" name="email">
  <h13>E-mail:</h13>
  <input type="text" name="phone">
  <h13>Номер телефона:</h13>
  <textarea rows="10" cols="45" name="message"></textarea>
  <input type="submit" value="Отправить сообщение">
  </fieldset>
  </form>

  </div>
Ответ написан
Ваш ответ на вопрос

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

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