Почтовая форма PHP с маркировкой $_POST в сообщении $

Это код, который я использую сейчас, и он отлично работает.

<?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', в электронном письме будет отображаться -Item 1 -Item 2

Как мне расположить эти метки, чтобы они появлялись только тогда, когда в поле qty есть значение.

2 ответа

Решение

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

<?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');

Вы можете изменить $ сообщение в следующем формате

$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}";
}
Другие вопросы по тегам