Я новичок в PHP. Это мой код из нашей рассылки mail.php. Когда пользователь отправляет запрос, существует 5-7 полей с возможностью выбора и 20-25 полей, которые в конечном итоге не будут выбраны. В выводе перечислены все поля и значения независимо от того, являются ли они пустыми или выбраны. Я понимаю, что мне нужно использовать либо unset
либо array_filter
, но не могу понять, как и где мне нужно вставлять код.
if($_POST && count($_POST)) { $body = ''; foreach($_POST as $key=>$value) $body .= $key . ": " . $value . "\r\n"; mail("email@email.com", "Email Received at email@email.com", $body);
Вы можете попробовать это
if($_POST && count($_POST)) { $_POST = array_filter($_POST); $body = ''; foreach($_POST as $key=>$value) $body .= $key . ": " . $value . "\r\n"; mail("email@email.com", "Email Received at email@email.com", $body);
ИЛИ
if($_POST && count($_POST)) { $body = ''; foreach($_POST as $key=>$value){ $trim_value = trim($value); if (!empty($trim_value)){ $body .= $key . ": " . $value . "\r\n"; } } mail("email@email.com", "Email Received at email@email.com", $body);
Перед циклом foreach вы должны использовать это
$_POST = array_filter($_POST);
Другим вариантом является использование условного внутри цикла foreach
foreach($_POST as $key=>$value) if ($value != '' && $value != null) $body .= $key . ": " . $value . "\r\n";