Контактная форма не имеет содержания - PullRequest
0 голосов
/ 17 апреля 2019

Форма отправки получена, но поля содержимого пусты.

Изменено "$_POST['Email']" на "$_GET['Email']"

Рассмотрено 10 других сообщений на форуме и устранены неполадки в течение 3 часов.

HTML-код

<form action="callform.php" method="post" class="request-form ftco- 
animate">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Full 
Name">
</div>
<div class="form-group">
<input type="text" name="email" class="form-control" placeholder="Email 
Address">
</div>
<div class="form-group">
<div class="form-field">
<div class="select-wrap">
<div class="icon"><span class="ion-ios-arrow-down"></span></div>
<select name="dropdown" id="Selection" class="form-control">
<option value="">Select Your Services</option>
<option value="">White Paper</option>
<option value="">Brown Paper</option>
<option value="">Black Paper</option>
<option value="">Red Paper</option>
<option value="">Yellow Paper</option>
<option value="">Orange Paper</option>
<option value="">Blue Paper</option>
<option value="">Green Paper</option>
<option value="">Purple Paper</option>
<option value="">Clear Plastic</option>
<option value=""></option>
</select>
</div>
</div>
</div>
<div class="form-group">
<input type="text" name="phone" class="form-control" placeholder="Phone">
</div>
<div class="form-group">
<textarea type="text" name="message" id="message" cols="30" rows="2" 
class="form-control" placeholder="Message"></textarea>
</div>
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-primary py-3 px-4" 
name="submit">
</div>
</form>

PHP

<?php
$EmailFrom = ".$email";
$mailTo = "my_email";
$Subject = "New Request";
$name = $_POST['name'];
$email = $_POST['email'];
$dropdown = $_POST['dropdown'];
$phone = $_POST['phone'];
$message = $_POST['message'];


$txt = "You have received a Request from ".$name.".\n\n".$message;

mail($mailTo, $Subject, $dropdown, $message, $headers);

/* Redirect visitor to the thank you page */
header('Location: ""?msg=success');
?>

Вот что я получаю:

От: CGI-Mailer To: mailpost@mymail.com Тема: Новый запрос вызова

Вы получили запрос от.

Ответы [ 4 ]

3 голосов
/ 17 апреля 2019

Пожалуйста, отметьте это

Вы использовали неправильный формат почты: это правильный почта (к, при условии, сообщения, заголовки, параметры);

$mailTo = "my_email";
$subject = "New Request";
$name = $_POST['name'];
$email = $_POST['email'];
$dropdown = $_POST['dropdown'];
$phone = $_POST['phone'];
$message = $_POST['message'];

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

$txt = "You have received a Request from ".$name." ".$message;

mail($mailTo, $subject, $txt, $headers);

/* Redirect visitor to the thank you page */
header('Location: ""?msg=success');
?>
0 голосов
/ 17 апреля 2019

Пожалуйста, используйте этот код для отправки формы электронной почты, она работает

$body = 'Name:-'.$_POST['name'];

$body .= 'Email:-'.$_POST['email'];

$body .= 'Services:-'.$_POST['dropdown'];

$body .= 'Phone:-'.$_POST['phone'];

$body .= 'Message:-'.$_POST['message'];

$subject = "Your email subject here";

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

$headers .="From: noreply@yourdomainname.com \r\n";

$to_email = "Your email address here";



if(@mail($to_email,$subject,$body,$headers))
{
      echo 'email send sucessfully'; 
}
else
{
     echo "Message could not be sent.";
     exit();
}
0 голосов
/ 17 апреля 2019

У вас есть дополнительный параметр в вашей функции mailTo.

Это:

mail($mailTo, $Subject, $dropdown, $message, $headers);

должно стать

mail($mailTo, $Subject, $message, $headers);

Вы были отправлены со значением $ dropdown каксообщение и сообщение $ в качестве заголовков.Функция не выдавала ошибок, поскольку она принимает необязательное значение параметра

Остальная часть кода выглядит нормально, если вы продолжаете использовать $ _POST, поскольку вы используете этот метод в определении формы

0 голосов
/ 17 апреля 2019

Как я вижу, после отправки значения полей формы отправляются корректно.Я не нахожу каких-либо серьезных проблем.Но вы должны сделать некоторую базовую проверку, прежде чем перехватывать данные полей таким способом -

<?php 
if (isset($_POST['submit'])){
  $EmailFrom = "your from email goes here";
  $Subject = "New Request";
  $name = $_POST['name'];
  $mailTo = 'mail to email goes here';
  $email = $_POST['email'];
  $dropdown = $_POST['dropdown'];
  $phone = $_POST['phone'];
  $message = $_POST['message'];
  $headers  = 'MIME-Version: 1.0' . "\r\n";
  // Additional headers
  $headers = 'From: ' .$EmailFrom. "\r\n";
  $headers .= 'Reply-To: '.$email. "\r\n";
  $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  $txt = "You have received a Request from ".$name.".\n\n".$message;
  mail($mailTo, $Subject, $txt, $headers);

  /* Redirect visitor to the thank you page */
  header('Location: ""?msg=success');
}
?>

Однако ваша функция почты содержит неверный параметр, как я сделал выше исправление.также вы можете объединить другие поля с переменной $txt, если вам нужно, и добавить разметку html.

...