2010-02-19 5 views
3

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

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 = "[email protected]"; 
$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, но я не могу понять, почему я не получаю адрес электронной почты, который вам известен - FYI PHP на сайте имеет настоящий адрес электронной почты, а не [email protected] Как только я нажал кнопку отправки, я попал в mailer.php, но заметил, что эхо «blarg!» поэтому я предполагаю, что письмо не отправляется.

Спасибо!

ответ

10

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

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

в

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

Это 100% право; при доступе к переменным в $ _POST они передаются через атрибут name элемента формы. – Erik

2

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

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

в

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

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

0

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

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

в

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

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

0

В вашем 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

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

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

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

код->

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

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

'SaveForm'

кстати :) ..

просто попытался

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

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

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

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

0

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

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

но вы должны сохранить имя кнопки представить, как saveForm
Таким образом, использование

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

Смежные вопросы