Помогите исправить ошибку в коде (форма отправки данных на сайте)

Файл newform.php загрузил на 000webhost.com Вот код:

<?php
if (isset($_POST['first_name'])) {$first_name = $_POST['first_name'];}
if (isset($_POST['last_name'])) {$last_name = $_POST['last_name'];}
if (isset($_POST['telephone'])) {$telephone = $_POST['telephone'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['course'])) {$course = $_POST['course'];
//if (isset($_POST['mess'])) {$mess = $_POST['mess'];}
//if (isset($_POST['select'])) {$mess = $_POST['select'];}
 
    $to = "моя_почта@gmail.com";
    $headers = "Content-type: text/plain; charset = UTF-8";
    $subject = "Заявка на обучение";
    $message = "first_name: $first_name; \n last_name: $last_name; \n telephone: $phone; \n email: $email; \n course: $course";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo "<b>Thank you!<p>";
    }
    else 
    {
    echo "<p><b>Ошибка";
    }
}
?>
<form class="form-wrap" method="POST" action="mail.php" onsubmit="return checkForm(this);">
                                <h4 class="text-white pb-20 text-center mb-30">Заявка на обучение</h4>      
                                <input type="text" class="form-control" name="first_name" placeholder="Имя" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Имя'" >
                                <input type="text" class="form-control" name="last_name" placeholder="Фамилия" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Фамилия'" >
                                <input type="phone" class="form-control" name="telephone" placeholder="Сотовый номер" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Сотовый номер'" >
                                <input type="email" class="form-control" name="email" placeholder="Почтовый адрес" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Почтовый адрес'" >
                                <div class="form-select" id="service-select">
                                    <select  name="course">
                                        <option datd-display="">Выбрать курс</option>
                                        <option value="1">Подготовка к ЕНТ(10-11класс)</option>
                                        <option value="2">Математика/Логика(НИШ)</option>
                                        <option value="3">Английский язык(НИШ)</option>
                                        <option value="4">Казахский/Русский язык(НИШ)</option>
                                        <option value="5">Математика/Логика(КТЛ)</option>
                                        <option value="6">Английский язык(КТЛ)</option>
                                        <option value="7">Казахский/Русский язык(КТЛ)</option>
                                        <option value="8">Продленка(математика/логика)4класс</option>
                                        <option value="9">Продленка(английский язык)4класс</option>
                                        <option value="10">Продленка(казахский язык)4класс</option>
                                    </select>
                                </div>                                  
                                <button class="primary-btn text-uppercase">Отправить</button>
                            </form>

Ниже код из файла mail.php. После заполнения полей выдает ошибку: Parse error: syntax error, unexpected 'Фамилия' (T_STRING), expecting ',' or ')' in /storage/ssd4/925/15155925/public_html/mail.php on line 55

Посмотрел. Вроде в 55 строке все правильно. Где там должна быть "," или ")" никак не пойму. Помогите исправить ошибку.

<?php
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$course = $_POST['course'];
$mess = $_POST['mess'];
$select = $_POST['select'];

$first_name = htmlspecialchars($first_name);
$last_name= htmlspecialchars($last_name);
$telephone = htmlspecialchars($telephone);
$email= htmlspecialchars($email);
$course = htmlspecialchars($course);
$mess= htmlspecialchars($mess);
$select = htmlspecialchars($select);

$first_name = urldecode($first_name);
$last_name= urldecode($last_name);
$telephone = urldecode($telephone);
$email= urldecode($email);
$course = urldecode($course);
$mess= urldecode($mess);
$select = urldecode($select);

$first_name = trim($first_name);
$last_name= trim($last_name);
$telephone = trim($telephone);
$email= trim($email);
$course = trim($course);
$mess= trim($mess);
$select = trim($select);

//echo $first_name;
//echo "<br>";
//echo $last_name;
//echo "<br>";
//echo $telephone;
//echo "<br>";
//echo $email;
//echo "<br>";
//echo $course;
//echo "<br>";
//echo $mess;
//echo "<br>";
//echo $select;

if(mail("моя_почта@gmail.com", "Заявка с сайта", "Имя:".$first_name.". "Фамилия:".$last_name.". "Телефон:".$telephone.". "email:".$email.". "Курс:".$course.". "mess:".$mess.". "select:".$select.". E-mail: ".$email ,"From: почта_на_000webhost.com \r\n"))
    {
        echo "сообщение успешно отправлено";
    } else {
        echo "при отправке сообщения возникли ошибки";
        }
?>

Repl.it показывает ту же ошибку: введите сюда описание изображения

Вроде все правильно..

В NetBeans где фамилия появилась красная линия. Вставить туда ',' или ')' ? введите сюда описание изображения


Ответы (1 шт):

Автор решения: ordman

Немного отрефакторил:

$data = [
'Имя'     => 'first_name' ,
'Фамилия' => 'last_name',
'Телефон' => 'telephone',
'email'   => 'email',
'Курс'    => 'course',
'mess'    => 'mess',
'select'  => 'select',
];

$message = array_reduce(array_keys($data), static function (string $prev, $name) use ($data) {
$delim = ': ';
$suffix   = '. ';
$value = trim(urldecode(htmlspecialchars($_POST[$data[$name]] ?? ''))) ?: 'Отсутствует';
return $prev . $name . $delim . $value . $suffix;
}, '');

if (mail("моя_почта@gmail.com", "Заявка с сайта", $message, "From: почта_на_000webhost.com \r\n")) {
echo "сообщение успешно отправлено";
} else {
echo "при отправке сообщения возникли ошибки";
}
→ Ссылка