Не могу понять ошибку в коде

211
20 декабря 2017, 23:09

Здравствуйте, Помогите, пожалуйста, понять, что не так в коде:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    // if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['form-title'])) {$formData = $_POST['form-title'];}
    $to = "ev.gorelickowa@yandex.ru"; /*Укажите адрес, совей почты*/
    $sendfrom   = "ev.gorelickowa@yandex.ru"; /*Укажите адрес, совей почты*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "$formData";
    $message = "$formData
    Имя пославшего: $name
    Телефон: $phone";
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '
<body id="thanks">
    <div id="main-wrapper">
    <div id="promo">
        <div class="w-center">
            <div class="main">
                <h1 class="title">Спасибо за Ваше обращение!</h1>
                <span class="subtitle">Мы свяжемся с Вами в ближайшее время.</span>
                <a href="index.html" class="button-yellow" >Вернуться на главную</a>
            </div>
        </div>
    </div>
    <div class="clear"></div>
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="js/all.scripts.js"></script>
    <script src="js/scripts.js"></script>
</body>
</html>
    ';
    }
    else
    {
    echo 'Ошибка. Сообщение не отправлено! Попробуйте еще раз';
    }
?>

Результат получается вот такой:

При проверке синтаксиса, находит только ошибку в закрывающем теге, но что тут не так понять не могу

Answer 1

Во-первых у вас не закрыт if, поставьте в конце скрипта еще одну закрывающую фигурную скобку. Во-вторых вместо if($send == 'true') лучше поставить просто if($send). И последнее - сообщение не отправляется потому как у вас не настроен smtp сервер, поэтому функция mail возвращает false со всеми вытекающими. Для локальной машины есть ответ тут , а так же можно настроить для тестирования по этой инструкции

По поводу вывода кусков кода - можно вынести html код из echo в отдельные файлы, например success.html и error.html, тогда ваш вывод примет вид, возможно поможет

if($send) {
  readfile('success.html');
} else {
  readfile('error.html');
}
READ ALSO
Вывод категорий и подкатегорий

Вывод категорий и подкатегорий

Правильно ли я сделал вывод?

152
Сабмит формы без потери данных в инпуте

Сабмит формы без потери данных в инпуте

Дорогие друзья, вопрос будет звучать довольно странно , но всё же это нужно

211
Как быстро перенести проект с Laravel на Yii2? [требует правки]

Как быстро перенести проект с Laravel на Yii2? [требует правки]

Был разработан небольшой корпоративный портал на Laravel 54, но теперь требуется развернуть аналог на фреймворке Yii2, потому что он принят в команде,...

186
Добавление атрибутов в Magento. Ошибка с config.

Добавление атрибутов в Magento. Ошибка с config.

Добавляю группу атрибутов, папки и сами атибутыНо почему-то в бд не пишется новая инфа

154