Почтовые поля кода php, отправляющие пустые поля - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь создать PHP mail.

Он отлично отправляет почту в почтовый ящик, но я не знаю, как отправить значения полей формы в inbox.Я пытался, но он отправляет пустые поля.

Поскольку я новичок в PHP, пожалуйста, проверьте

<?php
get_footer();
?>
<?php 

 $msg = "mail from" .$name;

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("email@example.com","My subject",$msg);


if(isset($_POST['submit']))
{

    $name = $_POST['name'];

    $to = "email@example.com";
    $subject = $_POST['phone'];
    $body = $_POST['body'];
}
?>

<form action="" id="reservationform" method="POST">
                <div class="row">
                    <div class="col-md-4 col-sm-6">
                        <div class="form-group">
                        <label for="name">Name</label>
                        <input type="text" class="form-control" id="name" name="name" placeholder="Full Name" title="Your Full Name please" required>
                        <i class="fa fa-pencil-square-o"></i>
                        </div>
                    </div>
                    <div class="col-md-4 col-sm-6">
                        <div class="form-group">
                        <label for="phone">Phone</label>
                        <input type="text" class="form-control" id="phone" name="phone" placeholder="Enter your Phone Number" title="Please enter your phone number" required>
                        <i class="fa fa-phone"></i>
                        </div>
                    </div>
          </form>

1 Ответ

0 голосов
/ 27 октября 2018

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

Вот как это делается при проверке любых пустых полей:

Обратите внимание, что я изменил аргументы mail() и добавил несколько условных операторов.

Примечание: Похоже, что пропущены входные данные, поэтому вам нужно добавить их в себя.

if(isset($_POST['submit'])) {

    if(!empty($_POST['name']) 
    && !empty($_POST['phone']) 
    && !empty($_POST['body'])) {

    $to =    "email@example.com";
    $name =  $_POST['name'];
    $phone = $_POST['phone'];
    $body =  $_POST['body'];

    $msg = "Mail from: $name\n" . "Message: $body\n" . "Phone: $phone \n";

    // use wordwrap() if lines are longer than 70 characters
    $msg = wordwrap($msg,70);

    // send email
    if(mail($to, $subject, $msg)){
        echo "Mail sent.";
    }else{ echo "There was an error."; }

    }else{ 
        echo "Some fields were left empty."; 
        }
}

Обратитесь к руководству по mail() для получения дополнительной информации и добавления заголовков, так как они могут быть отклонены илирассматривается как спам:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...