Как я могу отправлять почту на неизвестное количество адресов электронной почты в PHP? (Форма направления)

#php #forms #email

#php #формы #Адрес электронной почты

Вопрос:

Я пытаюсь написать пользовательскую форму направления. Пользователь может отправлять максимум до 10 электронных писем, и должен ввести хотя бы одно.

Я использую метод POST для своей формы. Если пользователь вводит 3 электронных письма (или 5, или 7, или 9 и т. Д.), Как я могу получить все это?

Кроме того, я использую JavaScript для добавления / удаления полей. Не то чтобы это имело значение, потому что все они имеют идентификатор, к которому в конце добавляется число. (Например, tf1, tf2, tf3, tf4 и т.д. и т.п.)

Вот мой HTML: http://www.graphicgoldfish.com /

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

PHP:

 $from = $_POST["tf_from"];
$r_char_name = $_POST["tf_character"];
$r_ign = $_POST["tf_ign"];

$contacts = array();

foreach($contacts as $contact) {
    $to = $contact;
    $subject = "Check out this server!"
    $message = "http://www.arithia.com"
    mail($to, $subject, $message, $headers);
}
  

Это все, что у меня есть на данный момент в моем PHP. 🙁

РЕДАКТИРОВАТЬ: я знаю, что могу использовать кучу условных обозначений, кстати… (Если поле не пустое, отправьте электронное письмо), но я уверен, что есть лучший способ сделать это, и я просто хотел бы знать. ^_^

Комментарии:

1. Нам нужно увидеть пример вывода того, как выглядят введенные электронные письма. Основаны ли они на методе, разделенном запятыми, методе перевода строки, другом?

Ответ №1:

Для каждого input тега электронной почты нужен name атрибут, например:

 <input type="email" name="emails[]" id="..">
  

В PHP он будет автоматически преобразован в массив, когда name заканчивается на [] .

 for ($i = 0; $i < min(count($_POST['emails']), 10); $i  ) {
  $email = $_POST['emails'][$i];
  // send email
}