2017-03-10 1 views
-1

Je travaillais sur mon propre site de vCard/CV. Mais j'ai quelques problèmes avec mon fichier .php et le formulaire de contact. J'ai essayé de le déboguer mais je n'ai pas eu de succès.Mon formulaire de contact n'envoie pas d'e-mails

Voici ma forme en html

<!-- form --> 
<form name="contactForm" id="contactForm" method="post" action="inc/sendEmail.php"> 
    <fieldset> 
     <div class="form-field"> 
      <input name="contactName" type="text" id="contactName" placeholder="Name" value="" minlength="2" required> 
     </div> 
     <div class="form-field"> 
      <input name="contactEmail" type="email" id="contactEmail" placeholder="Email" value="" required> 
     </div> 
     <div class="form-field"> 
      <input name="contactSubject" type="text" id="contactSubject" placeholder="Subject" value=""> 
     </div> 
     <div class="form-field"> 
      <textarea name="contactMessage" id="contactMessage" placeholder="Message" rows="10" cols="50" required></textarea> 
     </div> 
     <div class="form-field"> 
      <button class="submitform">Submit</button> 
      <div id="submit-loader"> 
       <div class="text-loader"> 
        Sending... 
       </div> 
       <div class="s-loader"> 
        <div class="bounce1"> 
        </div> 
        <div class="bounce2"> 
        </div> 
        <div class="bounce3"> 
        </div> 
       </div> 
      </div> 
     </div> 
    </fieldset> 
</form> 
<!-- Form End --> 

Et mon fichier php

<?php 
// Replace this with your own email address 
$siteOwnersEmail = '[email protected]'; 
if($_POST) { 
    $name = trim(stripslashes($_POST['contactName'])); 
    $email = trim(stripslashes($_POST['contactEmail'])); 
    $subject = trim(stripslashes($_POST['contactSubject'])); 
    $contact_message = trim(stripslashes($_POST['contactMessage'])); 
    // Check Name 
    if (strlen($name) < 2) { 
     $error['name'] = "Please enter your name."; 
    } 
    // Check Email 
    if (!preg_match('/^[a-z0-9&\'\.\-_\+][email protected][a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) { 
     $error['email'] = "Please enter a valid email address."; 
    } 
    // Check Message 
    if (strlen($contact_message) < 15) { 
     $error['message'] = "Please enter your message. It should have at least 15 characters."; 
    } 
    // Subject 
    if ($subject == '') { $subject = "Contact Form Submission"; } 
    // Set Message 
    $message .= "Email from: " . $name . "<br />"; 
    $message .= "Email address: " . $email . "<br />"; 
    $message .= "Message: <br />"; 
    $message .= $contact_message; 
    $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />"; 
    // Set From: header 
    $from = $name . " <" . $email . ">"; 
    // Email Headers 
    $headers = "From: " . $from . "\r\n"; 
    $headers .= "Reply-To: ". $email . "\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
    if (!$error) { 
     ini_set("sendmail_from", $siteOwnersEmail); // for windows server 
     $mail = mail($siteOwnersEmail, $subject, $message, $headers); 
     if ($mail) { echo "OK"; } 
     else { echo "Something went wrong. Please try again."; } 
    } # end if - no validation error 
    else { 
     $response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null; 
     $response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null; 
     $response .= (isset($error['message'])) ? $error['message'] . "<br />" : null; 
     echo $response; 
    } # end if - there was a validation error 
} 
?> 

Quelqu'un peut-il me dire ce que je fais mal ici, parce qu'il n'envoie des e-mails.

+0

Tout message d'erreur? – Twinfriends

+0

Essayez d'afficher le contenu de $ mail avec print_r ($ mail), insérez l'appel à print_r après l'appel à mail() – SPlatten

+0

Non, il n'y a pas de messages d'erreur quoi que ce soit. Il ne s'agit simplement pas d'envoyer des emails. –

Répondre

0

Vous devez déclarer le type de bouton type="submit" OU type="button" dans ce travail de cas avec la forme que vous devez ajouter type="submit"

et vérifier le bouton de clic de l'utilisateur ou un accès direct du fichier que vous pouvez vérifier !empty($_POST) avec si

// Change in your HTML 
<button class="submitform">Submit</button> 
// to 
<button type="submit" class="submitform">Submit</button> 

//Change in your PHP 
if($_POST) 
// to 
if(!empty($_POST)) 
+0

Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire expliquant pourquoi et/ou comment ce code répond à la question améliore sa valeur à long terme. –

+0

cela n'a pas fonctionné :( –

0

S'il vous plaît essayer

<?php 
$message =""; 
if(isset($_POST)){ 
    mail(to,subject,message,headers,parameters); 
} 
?> 
+0

Donc ce que vous dites est que je devrais changer mon fichier php entier? –

+0

vous pouvez essayer ceci –