Отправка формы Php, но $ _POST ['email'] не работает - PullRequest
3 голосов
/ 07 марта 2019

На моем сайте есть форма, которую я хочу отправить по электронной почте при отправке.Письмо отправляется, но вместе с ним не отправляется ни один контент.Похоже, что isset ($ _ POST ['email']) не работает.

Вот моя форма:

<form id="sponsorForm" name="sponsor" role="form">
   <div class="modal-body">
      <div class="form-group col-md-12">
         <label for="sponsorname">Name</label>
         <input type="text" name="sponsorname" class="form-control">
      </div>
      <div class="form-group col-md-12">
         <label for="sponsoremail">Email</label>
         <input type="email" name="sponsoremail" class="form-control">
      </div>
      <div class="form-group col-md-12">
         <label for="sponsormessage">Message</label>
         <textarea class="form-control" name="sponsormessage" rows="7" placeholder="Message...">
         </textarea>
      </div>
   </div>
   <div class="modal-footer" style="border: none;">                  
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      <input type="submit" class="btn btn-success" data-toggle="modal" data-target="#sponsor-thanks" id="sponsor-submit">
   </div>
</form>

Вот некоторый javascript для вызова php:

$(document).ready(function(){   
    $("#sponsorForm").submit(function(event){
        submitSponsorForm();
        return false;
    });
});

function submitSponsorForm(){
     $.ajax({
        type: "POST",
        url: "sendSponsor.php",
        cache:false,
        data: $('form#sponsorForm').serialize(),
        success: function(response){
            $("#sponsor").html(response)
            $("#sponsor-modal").modal('hide');
        },
        error: function(){
            alert("Error");
        }
    });
}

А вот php:

<?php
if (isset($_POST['email'])) {
    $sponsorname = strip_tags($_POST['sponsorname']);
    $sponsoremail = strip_tags($_POST['sponsoremail']);
   $sponsormessage = strip_tags($_POST['sponsormessage']);
    $message = "Name: ".$sponsorname."\r\nEmail: ".$sponsoremail."\r\nMessage: ".$sponsormessage; 
}
    mail("xxx@xxx.com", "subject", $message, "from: xxx");
?>

Ответы [ 2 ]

2 голосов
/ 07 марта 2019

В вашей форме поле ввода адреса электронной почты называется «спонсорская почта». Таким образом, вы должны использовать имя спонсора почты в качестве индекса переменной $_POST как $_POST['sponsoremail'], чтобы проверить, заполнил ли пользователь электронное письмо или нет, но вы использовали $_POST['email'], которого нет в вашей форме.

Используйте if (isset($_POST['sponsoremail'])) вместо if (isset($_POST['email'])), и оно должно работать.

1 голос
/ 07 марта 2019

Попробуйте это

    <?php
    if (isset($_POST['sponsoremail'])) {
        $sponsorname = strip_tags($_POST['sponsorname']);
        $sponsoremail = strip_tags($_POST['sponsoremail']);
       $sponsormessage = strip_tags($_POST['sponsormessage']);
        $message = "Name: ".$sponsorname."\r\nEmail: ".$sponsoremail."\r\nMessage: ".$sponsormessage; 
      mail("xxx@xxx.com", "subject", $message, "from: xxx");
     }
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...