Проблемы с выходом из контактной формы php - PullRequest
0 голосов
/ 22 ноября 2018

Итак, я пытаюсь создать контактную форму для веб-сайта, и я впервые делаю одну из этих форм.Моя проблема в том, что по какой-то странной причине моя кнопка ничего не отправляет, а кнопка не хочет работать.

Это форма ввода

<div>
        <form id="contact-us" method="post" action="contact-form-handler.php"> 
            <input name="name" type="text"class="form-control" placeholder="Your name" required>
            <br>
            <input name="phone" type="number" class="form-control" placeholder="Phonenumber no symbols or dashes"required>
            <br>
            <input name="email" type="email" class="form-control" placeholder="Your email" required>
            <br>
            <textarea name="message" class="form-control" placeholder="write us a message" rows="4" required></textarea>
            <br>
            <input type="submit" class="form-control-submit" value="SEND">
        </form>
    </div>

Вот мой обработчик.

    <?php
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];

    $email_from = 'website.com';
    $email_subject = 'New message from customer';
    $email_body = "name:  .$name. \n". 
                    "email: .$visitor_mail.\n".
                    "phone: .$phone. \n".
                    "message: .$message. \n";
    $to= "email@gmail.com";
    $headers= $email_from.;
    $headers .= $visitor_email.;

    mail($to,$email_subject,$email_body,$headers);

    header("Location: index.html");
?>

Я неконечно, почему это не работает, но если бы кто-нибудь мог мне помочь, это было бы удивительно.

1 Ответ

0 голосов
/ 22 ноября 2018
<div>
    <form id="contact-us" method="post" action="contact-form-handler.php">
        <input name="name" type="text" class="form-control" placeholder="Your name" required>
        <br>
        <input name="phone" type="number" class="form-control" placeholder="Phonenumber no symbols or dashes" required>
        <br>
        <input name="email" type="email" class="form-control" placeholder="Your email" required>
        <br>
        <textarea name="message" class="form-control" placeholder="write us a message" rows="4" required></textarea>
        <br>
        <input name="submit" type="submit" class="form-control-submit" value="SEND">
    </form>
</div>

Обработчик

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $visitor_email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];

    $email_from = 'website.com';
    $email_subject = 'New message from customer';
    $email_body = "name:  {$name} \n" .
        "email: {$visitor_email}\n" .
        "phone: {$phone} \n" .
        "message: {$message} \n";
    $to = "email@gmail.com";

    $headers = $email_from;
    $headers .= $visitor_email;

    $res = mail($to, $email_subject, $email_body, $headers);
    header("Location: index.html");
}

Я обнаружил несколько ошибок в вашем коде:

$headers= $email_from.; // syntax error - need to remove dot before ;
$headers .= $visitor_email.; // syntax error - need to remove dot before; same here

В вашем теле письма вы использовали $visitor_mail переменную, но вы $visitor_email Кроме того, я добавил тег имени в вашу форму и добавил дополнительное условие проверки.

Пожалуйста, попробуйте использовать это решение, надеюсь, оно вам поможет.Это решение отлично работает на моей стороне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...