PHP 邮件表单,在$message 中标注$_POST

PHP Mail Form, labeling the $_POST in the $message

这是我现在使用的代码,运行良好。

<?php 
if(!isset($_POST['submit']))
{
    //This page should not be accessed directly. Need to submit the form.
    echo "error; you need to submit the form!";
};
    $from = "someone@there.com";
    $to = "someone@here.com";
    $subject = "Customer Order";
    $message = "{$_POST['name']}
{$_POST['message']}
{$_POST['item1']} -Item 1
{$_POST['item2']} -Item 2";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    header('Location: thank-you1.html');


?>

当我收到发送的电子邮件时,无论输入的数量是 'item1' 还是 'item2',电子邮件都会显示 -项目 1 -项目 2

如何排列这些标签,以便它们仅在该数量框有值时出现。

您可以按以下格式更改 $message

$message = "{$_POST['name']}";
$message .= "{$_POST['message']}";
if(isset($_POST['item1']) & !empty($_POST['item1'])) {
$message .= "{$_POST['item1'] -Item 1}";
}
if(isset($_POST['item2']) & !empty($_POST['item2'])) {
$message .= "{$_POST['item2'] -Item 2}";
}

在将它们添加到正在编写的 e-mail 之前,请查看您表单中的项目变量是否已设置。

<?php
if(!isset($_POST['submit']))
{
    //This page should not be accessed directly. Need to submit the form.
    echo "error; you need to submit the form!";
};
    $from = "someone@there.com";
    $to = "someone@here.com";
    $subject = "Customer Order";
    $message = $_POST['name'] .
               $_POST['message'];

    if (isset($_POST['item1'])) {
        $message .= $_POST['item1'];
    }
    if (isset($_POST['item2']) {
        $message .= $_POST['item2'];
    }
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    header('Location: thank-you1.html');