Не могу отправить пустое значение флажка в phpmailer - PullRequest
0 голосов
/ 26 июня 2018

Я работаю в форме электронной почты с использованием phpmailer, есть проблема каждый раз, когда флажки остаются пустыми, поэтому я выясняю, что проблема в выражении ниже:

$f_select = '';
foreach ($_POST['select'] as $key => $value) {
    $f_select .= $value."\r\n";
}

Этовозвращает следующую ошибку:

Предупреждение: неверный аргумент указан для foreach () в /home/alive-web-tech/www/nagoyashobotenken/contact/complete.php в строке 23

Как я могу решить эту проблему?Я думаю, мне нужно создать условие, сообщающее, что когда значение флажка пусто, что-то должно произойти, чтобы предотвратить ошибку.

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Вам нужно проверить, пусто ли ваше $_POST['select'], прежде чем звонить foreach() поверх него.

Вы можете попробовать что-то вроде:

$f_select = '';
 if (!empty($_POST['select'])) {
   foreach ($_POST['select'] as $key => $value) {
     $f_select .= $value."\r\n";
   }
}
0 голосов
/ 26 июня 2018

Вы должны проверить $_POST['select], прежде чем просматривать его содержимое.

$f_select = '';

if (!empty($_POST['select'])) {
    foreach ($_POST['select'] as $key => $value) {
        $f_select .= $value."\r\n";
    }
}
0 голосов
/ 26 июня 2018

Существует 2 способа решения этой проблемы.

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

    <input type="hidden" name="select[firstCheckbox]" value="0" />
    <input type="checkbox" name="select[firstCheckbox]" />
    
  2. Если вас не интересуют пустые значения флажка, вы можете просто проверить, являются ли опубликованные данные пустыми, прежде чем вводитьцикл:

    $f_select = '';
    if (!empty($_POST['select'])) {
        foreach ($_POST['select'] as $key => $value) {
            $f_select .= $value."\r\n";
        }
    }
    
...