Как передать обработчику почты php данные переменной FORM? - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время у меня есть форма, созданная с использованием HTML / PHP, в которой есть некоторые переменные данные, которые я не могу передать обработчику почты. Входные данные с переменными данными остаются пустыми при отправке почты.

Форма HTML:

<form action="mail-handler.php" method="POST">
    <label>First Name:</label>
    <input name="T1" type="text" value="<?php print($_GET['firstname']); ?>" disabled="" />

    /*Non variable data still needs to pass*/
    <label>Phone*:</label>
    <input name="phone" type="tel" required="" />

    <input type="submit" value="Submit">
</form>

PHP Обработчик почты:

$firstname = $_POST['firstname'];
$phone = $_POST['phone'];


$msgBody="First Name: $firstname\n
          Phone: $phone\n";

. .. и т. д.

Форма работает для всех входных данных, кроме того, что содержит переменные данные $firstname

Как я могу получить значение переменной формы для «имени», которое нужно передать обработчик электронной почты?

1 Ответ

0 голосов
/ 27 мая 2020

Итак, хотя @Martin и @Adder были правильными с неверно присвоенным значением var, даже после изменения почтового обработчика данные все равно не будут проходить через электронную почту.

Я обнаружил, что виновником на самом деле был бит HTML, используемый для того, чтобы кто-то не мог редактировать сохраненную информацию. Я установил поля формы с данными переменных равными disabled="". По-видимому, это был последний блок, который препятствовал передаче данных.

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

<form action="mail-handler.php" method="POST">
    <label>First Name:</label>
    <input name="nameFirst" type="text" value="<?php print($_GET['firstname']); ?>" readonly="" />

    /*Non variable data still needs to pass*/
    <label>Phone*:</label>
    <input name="phone" type="tel" required="" />

    <input type="submit" value="Submit">
</form>

PHP не понравился отключенный статус, поэтому readonly="" выполнил свою работу. Затем я изменил имена переменных, чтобы они лучше соответствовали моим потребностям:

$nameFirst = $_POST['nameFirst'];
$phone = $_POST['phone'];


$msgBody="First Name: $nameFirst\n
          Phone: $phone\n";

Это сработало очень хорошо. Не используйте disabled="" в форме, в которой вы хотите передать переменные данные, это не сработает. Вместо этого используйте readonly="".

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