PHP mail () не принимает переменные

0

По некоторым причинам переменные $ name, $ email и $ message не передаются в переменные $ msgcontents и $ headers. После того, как я заполнил форму и нажмите отправить сообщение в моем почтовом ящике, это выглядит так:

Тема: Сообщение от контактной формы

От: Неизвестный отправитель

Дата: пн, 17 ноября 2014 г. 19:44

Кому: [email protected]

Имя:
Эл. адрес:
Сообщение:

Я использовал var_dump(), чтобы узнать, заполняются ли мои переменные после нажатия кнопки submit, но они по какой-то причине не подхватываются $ msgcontents и $ headers. Где я иду не так?

Вот мой код:

<?php

        $name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES));
        $email = trim($_POST['email']);
        $message = trim(htmlspecialchars($_POST['message'], ENT_QUOTES));

            $to = "[email protected]";
            $subject = "Message From Contact Form";
            $msgcontents = "Name: $name <br>  Email: $email <br>  Message: $message";
            $headers = array("MIME-VERSION: 1.0",
                             "Content-type: text/html; charset=iso-8859-1",
                              "From: $name <$email>",
                              "Reply-To: [email protected]",
                              "X-Mailer: PHP/" . PHP_VERSION
                             );
            $headers = implode("\r\n", $headers);      
            $mailsent = mail($to, $subject, $msgcontents, $headers);                  
    ?>

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>

    <form id="contactform" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" novalidate> 

    <input type="text" name="name" placeholder="Your Name">
    <input type="email" name="email"  placeholder="Your Email">
    <textarea name="message" placeholder="Your Message"></textarea>
    <input type="submit" name="submitform" value="send">
    </form>

<?php
var_dump($to); 
?>
<br>
<?php
var_dump($subject);
?> 
<br>
<?php
var_dump($msgcontents); 
?>
<br>
<?php
var_dump($headers); 
?>
<br>
<?php
var_dump($name); 
?>
<br>
<?php
var_dump($email); 
?>
<br>
<?php
var_dump($message); 
?>

    </body>
    </html>
  • 0
    Можете ли вы показать нам форму действий, оказанную стоимость?
  • 0
    Извините, я довольно новичок в php и кодировании. Я не уверен, что ты имеешь в виду.
Показать ещё 1 комментарий
Теги:
email

1 ответ

0

Я думаю, вы проверяете сообщение, отправленное с первой загрузки страницы (без формы)

Попробуйте обернуть код отправки электронной почты, например:

if (isset($_POST['submitform'])) {
  //...
  mail(...);
  //...
}

Затем, когда загрузка страницы не была отправлена, но когда вы нажимаете кнопку отправки, почта отправляется

Ещё вопросы

Сообщество Overcoder
Наверх
Меню