2016-10-18 1 views
1

Ok, j'ai donc un formulaire contact.php, que j'ai utilisé par le passé mais pour une raison quelconque, je ne travaillerai pas avec un nouveau modèle sur lequel je travaille. J'espère que quelqu'un peut aider à montrer ce que je ne vois pas. Le modèle lui-même utilise bootstrap. Toutes mes excuses pour demander, mais sa me rend fou lolEssayer de comprendre pourquoi mon formulaire de contact ne fonctionne pas

HTML FORMULAIRE

<form class="form" method="post" action="contact.php" role="form"> 
    <div class="form__inner"> 
     <div class="form__group form__column"> 
      <input type="text" class="form__element field" name="username" placeholder="Your name" pattern="^\S[а-яА-ЯёЁa-zA-Z\s]+\S" required="required" data-error="Please enter your name"> <i class="icon form__icon icon-user"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div> 
     </div> 
     <div class="form__group form__column"> 
      <input type="email" class="form__element field" name="usermail" placeholder="Your email" required="required" data-error="Please enter a valid e-mail"> <i class="icon form__icon icon-envelope"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div> 
     </div> 
    </div> 
    <div class="form__group"> 
     <select class="form__element select" name="subject"> 
      <option class="select__option">Subject</option> 
      <option class="select__option">Job</option> 
      <option class="select__option">Digital Marketing Workshop</option> 
      <option class="select__option">Testimonial</option> 
      <option class="select__option">Other</option> 
     </select><i class="icon form__icon icon-book"></i></div> 
    <div class="form__group"> 
     <textarea class="form__element field textarea" name="msg" placeholder="Your message" required="required" data-error="Please leave a message"></textarea><i class="icon form__icon icon-bubbles"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div></div> 
    <div class="form__button-box"> 
     <button class="button">Send</button> 
    </div> 
</form> 

Contact.PHP

<?php 

// configure 
$from = 'Support <[email protected]>'; 
$sendTo = 'Sales <[email protected]>'; 
$subject = 'I would like to arrange a FREE quotation'; 
$fields = array('username' => 'username', 'usermail' => 'usermail' , 'subject' => 'subject' , 'msg' => 'msg'); // array variable name => Text to appear in email 
$okMessage = 'Contact form successfully submitted. Thank you, we will get back to you soon!'; 
$errorMessage = 'There was an error while submitting the form. Please try again later'; 

// let's do the sending 

try 
{ 
    $emailText = "You have new message from contact form\n=============================\n"; 

    foreach ($_POST as $key => $value) { 

     if (isset($fields[$key])) { 
      $emailText .= "$fields[$key]: $value\n"; 
     } 
    } 

    mail($sendTo, $subject, $emailText, "From: " . $from); 

    $responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (\Exception $e) 
{ 
    $responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
    $encoded = json_encode($responseArray); 

    header('Content-Type: application/json'); 

    echo $encoded; 
} 
else { 
    echo $responseArray['message']; 
} 

?> 

Merci d'avance pour votre aide avec ce gars, luttant contre la grippe atm et actuellement un peu out of it lol

+1

Quelle erreur obtenez-vous? et qu'est-ce que c'est "catch (\ Exception $ e)"? que fait le "\" là-bas? –

+0

Il serait utile de partager le message d'erreur réel, ou au moins une description du problème que vous voyez lorsque vous dites "ne fonctionnera pas". – Fishizzle

+0

Soumettez-vous même le formulaire? Je ne vois qu'un , je devrais être un contrôleur derrière lui – Oli

Répondre

0

Votre formulaire fonctionne voir l'image, juste quelques choses que vous devez corriger, d'abord votre bouton doit avoir un attribut de nom puis sur votre contrôleur vérifier si le bouton est réglé avant d'envoyer le formulaire, il se peut que vous envoyiez un formulaire vide.

page.php

<form class="form" method="post" action="contact.php" role="form"> 
<div class="form__inner"> 
    <div class="form__group form__column"> 
     <input type="text" class="form__element field" name="username" placeholder="Your name" pattern="^\S[а-яА-ЯёЁa-zA-Z\s]+\S" required="required" data-error="Please enter your name"> <i class="icon form__icon icon-user"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div> 
    </div> 
    <div class="form__group form__column"> 
     <input type="email" class="form__element field" name="usermail" placeholder="Your email" required="required" data-error="Please enter a valid e-mail"> <i class="icon form__icon icon-envelope"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div> 
    </div> 
</div> 
<div class="form__group"> 
    <select class="form__element select" name="subject"> 
     <option class="select__option">Subject</option> 
     <option class="select__option">Job</option> 
     <option class="select__option">Digital Marketing Workshop</option> 
     <option class="select__option">Testimonial</option> 
     <option class="select__option">Other</option> 
    </select><i class="icon form__icon icon-book"></i></div> 
<div class="form__group"> 
    <textarea class="form__element field textarea" name="msg" placeholder="Your message" required="required" data-error="Please leave a message"></textarea><i class="icon form__icon icon-bubbles"></i> <span class="form__decor-line"></span></br><div class="help-block with-errors"></div></div> 
<div class="form__button-box"> 
    <button class="button" name="send">Send</button> 
</div> 
</form> 

contact.php

<?php 
// configure 
$from = 'Support <[email protected]>'; 
$sendTo = 'Sales <[email protected]>'; 
$subject = 'I would like to arrange a FREE quotation'; 
$fields = array('username' => 'username', 'usermail' => 'usermail' , 'subject' => 'subject' , 'msg' => 'msg'); // array variable name => Text to appear in email 
$okMessage = ''; 
$errorMessage = 'There was an error while submitting the form. Please try again later'; 

// let's do the sending 
if(isset($_POST['send'])){ 

try 
{ 
    $emailText = "You have new message from contact form\n=============================\n"; 

    foreach ($_POST as $key => $value) { 

     if (isset($fields[$key])) { 
      $emailText .= "$fields[$key]: $value\n"; 
     } 
    } 

    mail($sendTo, $subject, $emailText, "From: " . $from); 
    $okMessage="Contact form successfully submitted. Thank you, we will get back to you soon!"; 
    $responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (Exception $e) 
{ 
    $responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
    $encoded = json_encode($responseArray); 

    header('Content-Type: application/json'); 

    echo $encoded; 
} 
else { 
    echo $responseArray['message']; 
} 

} 


?> 

Résultats:

enter image description here] 1

NB: Vous avez aussi n eed pour valider votre homme fieds, pas avec les champs requis de buildin html5 utilisez vos propres validations, html5 ne vérifie pas correctement les emails.