2010-02-19 11 views
3

J'ai un formulaire de contact sur une page qui envoie les détails du formulaire à une adresse e-mail. Vous pouvez voir ici, www.wonder.ieFormulaire de contact PHP ne pas envoyer

Le code HTML du formulaire est la suivante:

<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> 

Et pour mon PHP est la suivante:

<?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!"; 
} 
?> 

Est-ce que tout bon air ? Je sais que les noms des formulaires correspondent correctement avec le PHP mais je n'arrive pas à comprendre pourquoi je ne reçois pas l'email que vous connaissez - FYI le PHP sur le site a une vraie adresse email, pas [email protected] Une fois que je clique sur le bouton soumettre, je suis redirigé vers mailer.php mais je remarque l'écho "blarg!" donc je suppose que l'email n'est pas envoyé.

Merci!

Répondre

10

Vous devez changer

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

à

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

Ceci est 100% à droite; Lorsque vous accédez à des variables dans $ _POST, elles sont associées à l'attribut name de l'élément de formulaire. – Erik

2

Essayez de changer

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

à

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

C'est parce que $ _POST cherche le nom d'une entrée de formulaire, pas le type.

0

Dans votre code PHP que vous vérifiez si $_POST['submit'] est défini, mais dans votre code HTML vous a donné le bouton soumettre le nom de saveForm vous devriez donc changer la ligne

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

à

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

espère que cela vous a aidé :)

0

Dans votre code html de votre ont

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

mais dans le fichier php lorsque vous vérifiez pour $_POST["submit"], ce qui ne va pas.

Vous devez changer if(isset($_POST['submit'])) à if(isset($_POST['saveForm']))

ou if(isset($_POST['submit'])) à if(isset($_POST))

0

Certains serveurs de messagerie ne sera pas accepter des courriels sans en-têtes appropriés et que vous avez fourni aucune. C'est ce que j'utilise.

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

votre problème est qu'il est répands blarg. il est certainement le poste ne parvient pas à votre

code->

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

et le nom de la soumission ne doit être modifié pour

'SaveForm'

par la voie :) ..

juste essayé

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

dans votre x.php, télécharger et chage à, sujet et le corps à des choses bonnes et si elle est envoyée alors la fonction de messagerie fonctionne bien.

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

c'est aussi un bon code que j'ai trouvé dans stackoverflow pour vérifier si la fonction de messagerie fonctionne.

0

vous utilisez

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

mais, vous avez enregistrer le nom du bouton Envoyer comme saveForm
Alors, utilisez

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

Questions connexes