добавление определенных переменных html в переменную почтовой программы, используя php и if-Statement - PullRequest
0 голосов
/ 04 марта 2019

При написании моего сайта я столкнулся со следующей проблемой: На первой странице вы можете ввести некоторые данные, такие как имена, даты, адреса и т. Д. Кроме того, есть несколько флажков с фиксированными данными.После заполнения формы я хочу, чтобы ее отправили на мою электронную почту, которая работает по большей части.

<?php
//subject of the e-mail
$subject = "Test";

// the message
$msg = "Antragssteller: " . $_POST['ANachname'] . ", " . $_POST['AVorname'] . "<br>E-Mail: " . $_POST['AMail'] . "<br><br>" .
    "Testperson: " . $_POST['MNachname'] . ", " . $_POST['MVorname'] . "<br>Adresse: " . $_POST['Adresse'] . "<br><br>";

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

// send email
sendMailInt($subject, $msg);
?>

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

<?php
//subject of the e-mail
$subject = "Test";

// the message
$msg = "Antragssteller: " . $_POST['ANachname'] . ", " . $_POST['AVorname'] . "<br>E-Mail: " . $_POST['AMail'] . "<br><br>" .
    "Testperson: " . $_POST['MNachname'] . ", " . $_POST['MVorname'] . "<br>Adresse: " . $_POST['Adresse'] . "<br><br>" .
    "checkbox1: " . $_POST['checkbox1'] . "<br>" .
    "checkbox2: " . $_POST['checkbox2'] . "<br>" .
    "checkbox3: " . $_POST['checkbox3'] . "<br>" .
    "checkbox4: " . $_POST['checkbox4'] . "<br>" .
    "checkbox5: " . $_POST['checkbox5'] . "<br>" .
    "checkbox6: " . $_POST['checkbox6'] . "<br>" .
    "checkbox7: " . $_POST['checkbox7'] . "<br>" .
    "checkbox8: " . $_POST['checkbox8'] . "<br>" .
    ;

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

// send email
sendMailInt($subject, $msg);
?>

Специально для ввода флажка я хочу иметь что-то вроде оператора if, чтобы проверить, был ли установлен флажок или нет.Если флажок снят, значение будет пустым, что означает, что в моем письме есть пустая строка.Поскольку у меня есть около 20 флажков, в электронном письме может быть немного беспорядочно, если 10 флажков подряд не проверено.

Я попытался написать $msg = в виде HTML-почты и добавить в нее код PHP, но затем мой веб-сайт перестал работать (стал совершенно пустым, ошибка, с которой я сталкивался несколько раз раньше при использовании неправильного кода)

<?php
//subject of the e-mail
$subject = "Test";

// the message
$msg = "
<html>
<head>
<title>Test Mail</title>
<body>
<?php
    echo "Antragssteller: " . $_POST['ANachname'] . ", " . $_POST['AVorname'] . "<br>E-Mail: " . $_POST['AMail'] . "<br><br>" .
    "Testperson: " . $_POST['MNachname'] . ", " . $_POST['MVorname'] . "<br>Adresse: " . $_POST['Adresse'] . "<br><br>"; 
    if ($_POST['checkbox1'] == true)
        echo $_POST['checkbox1'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox2'] == true)
        echo $_POST['checkbox2'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox3'] == true)
        echo $_POST['checkbox3'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox4'] == true)
        echo $_POST['checkbox4'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox5'] == true)
        echo $_POST['checkbox5'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox6'] == true)
        echo $_POST['checkbox6'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox7'] == true)
        echo $_POST['checkbox7'] . "<br>";
    else
        echo "";

    if ($_POST['checkbox8'] == true)
        echo $_POST['checkbox8'] . "<br>";
    else
        echo "";
?>
</body>
</html>
";

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

// send email
sendMailInt($subject, $msg);
?>

Есть ли способ пропустить пустые переменные в переменной mailer, чтобыотправляемая почта выглядит чистой без дырок?

Ждем от вас, ребята, благодарности.

1 Ответ

0 голосов
/ 04 марта 2019

Первое, что вы можете сделать, - это файл, с которым вы работаете, чтобы на экране отображались ошибки (используйте это только в средах разработки):

error_reporting(E_ALL);
ini_set('display_errors', 1);

Во-вторых, множественные входные данные формыодин и тот же тип данных может быть значительно упрощен, если поместить их в массив.Вот как будет выглядеть синтаксис:

<input name="checkbox[]" value="1" />
<input name="checkbox[]" value="2" />
<input name="checkbox[]" value="3" />
<input name="checkbox[]" value="4" />
<input name="checkbox[]" value="5" />

Тогда в PHP вы можете сделать что-то вроде этого, которое будет распечатывать только выбранные флажки:

foreach ($_POST['checkbox'] as $checkbox) {
  echo $checkbox . "<br>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...