PHP контактная форма не отправляется - PullRequest
3 голосов
/ 19 февраля 2010

У меня есть контактная форма на странице, которая отправляет детали формы на адрес электронной почты. Вы можете посмотреть его здесь, www.wonder.ie

HTML-код формы:

<form id="form" name="form27" class="wufoo  page" enctype="multipart/form-data" method="post" action="mailer.php">  
    <ul>
        <li id="foli1">
            <label class="op" id="title1" for="Field1">Name</label>
            <div><input id="Field1" name="name" type="text" class="op required" value="" maxlength="255" tabindex="1" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>  
        </li>

        <li id="foli2">
        <label class="op" id="title2" for="Field2">Email</label>
            <div><input id="Field2" name="email" type="text" class="op required email" value="" maxlength="255" tabindex="2" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
        </li>

        <li id="foli3">
            <label class="op" id="title3" for="Field3">Inquiry</label>
            <div><textarea id="Field3" name="message" class="op required" rows="10" cols="50" tabindex="3" onkeyup="handleInput(this);" onchange="handleInput(this);"></textarea></div>
        </li>
        </ul>  
        <input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />         
</form>

А для моего PHP это так:

<?php
if(isset($_POST['submit'])) {
$to = "AN_EMAIL@ADDRESS.COM";
$subject = "Email from Wonder.ie";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

mail($to, $subject, $body);
} else {
echo "blarg!";
}
?>

Все выглядит правильно? Я знаю, что имена форм правильно сопоставлены с PHP, но я не могу понять, почему я не получаю электронное письмо, которое вы знаете - к вашему сведению, PHP на сайте имеет настоящий адрес электронной почты, а не AN_EMAIL@ADDRESS.COM. Как только я нажимаю кнопку отправки, меня переводят на mailer.php, но я замечаю эхо "blarg!" поэтому я предполагаю, что электронное письмо не отправляется.

Спасибо!

Ответы [ 9 ]

10 голосов
/ 19 февраля 2010

Вы должны изменить

if(isset($_POST['submit'])) {

на

if(isset($_POST['saveForm'])) {
2 голосов
/ 01 августа 2013

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

Перехват ошибок PHP mail () и отображение разумного сообщения об ошибке пользователя

2 голосов
/ 19 февраля 2010

Попробуйте изменить

if(isset($_POST['submit'])) {

на

if(isset($_POST['saveForm'])) {

Это потому, что $ _POST ищет имя ввода формы, а не тип.

0 голосов
/ 25 января 2015

вы используете

if(isset($_POST['submit'])) {

но вы сохранили название кнопки отправки как saveForm
Итак, используйте

if(isset($_POST['saveForm'])) {

0 голосов
/ 21 октября 2013

твоя проблема в том, что это выливается на нас.это определенно сообщение не достигает вашего

кода ->

mail($to, $subject, $body);

и имя отправителя должно быть изменено на

'saveForm'

кстати:) ..

только что попробовал

mail($to, $subject, $body);

в вашем x.php, загрузитьэто и вызов, субъект и тело к правильным вещам, и если оно отправлено, тогда функция mail работает нормально.

 if(@mail($emailRecipient, $subject, $message, $headers))
    {
      echo "Mail Sent Successfully";
    }else{
      echo "Mail Not Sent";
    }

это также хороший код, который я нашел в stackoverflow, чтобы проверить, работает ли функция mail.

0 голосов
/ 21 июля 2013

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

http://us2.php.net/manual/en/function.mail.php

$header = "From: ".$fromText."\r\n";
$header .= "Cc: ".$ccText."\n";
$header .= "Reply-To : ".$fromText."\r\n";
$header .= "Return-Path : ".$fromText."\r\n";
$header .= "X-Mailer: PHP\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($toText, $subjectText, $msgText, $header, '-f'.$fromText);
0 голосов
/ 02 апреля 2013

В вашем html у вас есть

<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />

, но в php-файле, когда вы проверяете на $_POST["submit"], что не правильно.

Вам нужно изменить if(isset($_POST['submit'])) на if(isset($_POST['saveForm']))

или if(isset($_POST['submit'])) до if(isset($_POST))

0 голосов
/ 02 апреля 2013

В вашем PHP-коде вы проверяете, установлено ли $_POST['submit'], но в своем HTML-коде вы дали кнопке отправки имя saveForm, поэтому вам следует изменить строку

if(isset($_POST['submit'])) {

на

if(isset($_POST['saveForm'])) {

Надеюсь, это помогло вам:)

0 голосов
/ 27 декабря 2011

Руководство по отправке почты в формате HTML на PHP http://top -answers.net / webhost / web-hosting.html

...