首页 > 解决方案 > 发送空字段的php代码邮件字段

问题描述

我正在尝试创建一个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>

标签: phpemail

解决方案


它正在发送空字段,因为您没有在消息(正文)中传递任何 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()获取更多信息,并添加标题,因为它可能会被拒绝或视为垃圾邮件:


推荐阅读