Cкрипт формы фидбэка

265
07 марта 2017, 13:52

Здравствуйте, господа. Нужна Ваша помощь. Есть форма обратной связи и php скрипт файл к ней

HTML:

<form class="form-horizontal" id="feedback" role="form" method="post" action="sendemail.php">
    <div class="form-group">
        <label for="name" class="col-sm-2 control-label">Имя</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" >

        </div>
    </div>
    <div class="form-group">
        <label for="email" class="col-sm-2 control-label">Ваш Email</label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" >
        </div>
    </div>
    <div class="form-group">
        <label for="message" class="col-sm-2 control-label">Сообщение</label>
        <div class="col-sm-10">
            <textarea class="form-control" rows="4" name="message"></textarea>
        </div>
    </div>
    <div class="form-group">
        <label for="human" class="col-sm-2 control-label">2 + 3 = ?</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="human" name="human" placeholder="Your Answer">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10 col-sm-offset-2">
            <input id="submit" name="submit" type="submit" value="Отправить" class="btn btn-primary">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10 col-sm-offset-2">
            <?php echo $result; ?>  
        </div>
    </div>
</form> 

PHP:

    <?php
    if (isset($_POST["submit"])) {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $human = intval($_POST['human']);
        $from = 'Demo Contact Form'; 
        $to = 'piskunovalxy@gmail.com'; 
        $subject = 'Message from Contact Demo ';
        $body = "From: $name\n E-Mail: $email\n Message:\n $message";
        // Check if name has been entered
        if (!$_POST['name']) {
            $errName = 'Please enter your name';
        }
        // Check if email has been entered and is valid
        if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errEmail = 'Please enter a valid email address';
        }
        //Check if message has been entered
        if (!$_POST['message']) {
            $errMessage = 'Please enter your message';
        }
        //Check if simple anti-bot test is correct
        if ($human !== 5) {
            $errHuman = 'Your anti-spam is incorrect';
        }
if (!$errName && !$errEmail && !$errMessage && !$errHuman) {
    if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
        header ('Location: index.html');
    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
    }
}
    }
?>

Проблема в том, что сообщения то приходят, если все поля заполнены, в том числе и анти спам. Но если одно поле пустое или анти спам не верен, то выбивает белую страницу скрипта. Заранее спасибо

Answer 1

У вас в форме стоит:

<?php echo $result; ?>

а в php-файле после последнего else нет echo. Поэтому $result не выводится. Попробуйте:

echo $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';

Либо редирект тогда также с него добавьте на index, как в первом условии.

На будущее: в таких случаях всегда есть смысл попробовать var_dump() для всех переменных, поведение которых вызывает сомнение.

READ ALSO
Шрифты на резиновом шаблоне

Шрифты на резиновом шаблоне

Добрый вечерВерстаю резиновый шаблон и возникли неожиданные трудности с шрифтами

246
Некорректно работают виджеты VK API на wix.com

Некорректно работают виджеты VK API на wix.com

Попытался встроить, вставив в блок "html" виджет сообщества, вышло следующее: (не полностью + "прогрузка" длится вечно)

282
Анимация динамичной высоты блока

Анимация динамичной высоты блока

Добрый деньЕсть скрытый блок, который открывается по кнопке, нужно что бы анимация была плавной по высоте этого блока, использовал как css3 так...

249
Обработка событий в datalist

Обработка событий в datalist

Доброго времени сутокСтолкнулся с такой проблемой

329