Problème formulaire de contact !

CDB Creations Messages postés 5 Statut Membre -  
animostab Messages postés 3003 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,
je suis graphiste dans une société de création d'objets en verre acrylique.
J'ai été chargé de créer le site web de cette société, ayant quelques notions d'HTML.
J'ai donc utilisé un template nommé Andia Agency.

Seulement, une fois le site en ligne, je me suis rendu compte que le formulaire de contact ne fonctionnait pas !
C'est un réel problème, les contacts par mail étant majoritaires!
Je n'ai pas trouvé la cause, je suis totalement perdu, autant j'ai quelques notions en html, autant le php et javascript sont un autre monde pour moi...

Alors j'implore votre aide, et vos connaissances en la matière...

Le site est accessible ici : compagniedesblocs.fr

Code HTML du formulaire:

<!-- Formulaire -->
<div class="contact-us container">
<div class="row">
<div class="contact-form span7">
<form method="post" action="assets/sendmail.php">
<label for="name" class="nameLabel">Nom / Société</label>
<input id="name" type="text" name="name" placeholder="Entrez votre nom...">
<label for="email" class="emailLabel">Email</label>
<input id="email" type="text" name="email" placeholder="Entrez votre email...">
<label for="subject">Objet</label>
<input id="subject" type="text" name="subject" placeholder="Le sujet de votre message...">
<label for="message" class="messageLabel">Message</label>
<textarea id="message" name="message" placeholder="Votre message ici..."></textarea>
<button type="submit">Envoyer</button>
</form>
</div>
<div class="contact-address span5">
<h4>Nous sommes ici</h4>
<div class="map"></div>
<h4>Adresse</h4>
<p>43 Bis, rue Michelet<br>65700 MAUBOURGUET, France</p>
<p>Tél: +33 5 92 93 7000</p>
</div>
</div>
</div>

Mon fichier Sendmail.php:

<?php

// Email address verification
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
}

if($_POST) {

// Enter the email where you want to receive the message
$emailTo = 'crea@fiva.com';

$clientName = trim($_POST['name']);
$clientEmail = trim($_POST['email']);
$subject = trim($_POST['subject']);
$message = trim($_POST['message']);

$array = array();
$array['nameMessage'] = '';
$array['emailMessage'] = '';
$array['messageMessage'] = '';

if($clientName == '') {
$array['nameMessage'] = 'Entrez votre nom.';
}
if(!isEmail($clientEmail)) {
$array['emailMessage'] = 'Adresse e-mail non valide.';
}
if($message == '') {
$array['messageMessage'] = 'Entrez votre message..';
}
if($clientName != '' && isEmail($clientEmail) && $message != '') {
// Send email
$headers = "From: " . $clientName . " <" . $clientEmail . ">" . "\r\n" . "Reply-To: " . $clientEmail;
mail($emailTo, $subject, $message, $headers);
}

echo json_encode($array);

}

?>

Le code Javascript:

/*
Contact form
*/
jQuery(document).ready(function() {
$('.contact-form form').submit(function() {

$('.contact-form form .nameLabel').html('Name');
$('.contact-form form .emailLabel').html('Email');
$('.contact-form form .messageLabel').html('Message');

var postdata = $('.contact-form form').serialize();
$.ajax({
type: 'POST',
url: 'assets/sendmail.php',
data: postdata,
dataType: 'json',
success: function(json) {
if(json.nameMessage != '') {
$('.contact-form form .nameLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.nameMessage + '</span>');
}
if(json.emailMessage != '') {
$('.contact-form form .emailLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.emailMessage + '</span>');
}
if(json.messageMessage != '') {
$('.contact-form form .messageLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.messageMessage + '</span>');
}
if(json.nameMessage == '' && json.emailMessage == '' && json.messageMessage == '') {
$('.contact-form form').fadeOut('fast', function() {
$('.contact-form').append('<p><span class="violet">Thanks for contacting us!</span> We will get back to you very soon.</p>');
});
}
}
});
return false;
});
});

Merci d'avance pour vos conseils.

7 réponses

  1. Lord Zero Messages postés 487 Statut Membre 115
     
    Salut, "il ne fonctionne pas", y'as t'il un message d'erreur?
    0
  2. CDB Creations Messages postés 5 Statut Membre
     
    En ligne, lorsque je remplis mon formulaire et que je clique sur Envoyer, il ne se passe rien, je ne reçois pas de mail (alors que je suis sensé être le destinataire du formulaire), et dans la barre d'état de l'explorateur, j'ai un message "Erreur sur la page".
    0
    1. Lord Zero Messages postés 487 Statut Membre 115
       
      Voici un exemple de formulaire, il fonctionne très bien et peut être modifié facilement :

      <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dtd/xhtml1-transitional.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml">

      <head>
      <meta content="text/html; charset=latin1" http-equiv="Content-Type" />
      <title>Contact</title>
      </head>

      <body>

      <form name="form1" method="post" action="envoicontact.php">
      <div>
      <table>
      <tr>
      <td>Nom :</td><td><input id="name" name="name" type="text" style="width:180px"/></td>
      </tr>
      <tr>
      <td>Prénom :</td><td><input id="name2" name="name2" type="text" style="width: 180px" /></td>
      </tr>
      <tr>
      <td>Société :</td><td><input id="societe" name="societe" type="text" style="width:180px" /></td>
      </tr>
      <tr>
      <td>Adresse E-mail :</td><td><input id="mail" name="mail" type="text" style="width: 180px" /></td>
      </tr>
      <tr>
      <td>Tél. portable :</td><td><input id="telport" name="telport" type="text" style="width: 180px" value="ex : 0612345678" onfocus="telport.value='' " /></td>
      </tr>
      <tr>
      <td>Tél. fix :</td><td><input id="telfix" name="telfix" type="text" style="width: 180px" value="ex : 0247881178" onfocus="telfix.value='' " /></td>
      </tr>
      <tr>
      <td>Tél. fax :</td><td><input id="telfax" name="telfax" type="text" style="width: 180px" value="ex : 0247561649" onfocus="telfax.value='' " /></td>
      </tr>
      <tr>
      <td>Commentaires :</td><td><textarea id="message" name="message" style="height: 118px; width: 401px"></textarea></td>
      </tr>
      <tr>
      <td><input name="envoyer" type="submit" value="Envoyer" /></td>
      <td><input name="Reset1" type="reset" value="Effacer" />
      </td>
      </tr>
      </table>
      </div>
      </form>
      </body>

      </html>



      Page envoicontact.php

      <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dtd/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">

      <head>
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
      <meta http-equiv="refresh" content="3 URL=index.html"/>
      <title>Mail Envoyé</title>
      </head>

      <body>
      <?php
      //Récupération des variables
      $textName = $_POST['name'];
      $textName2 = $_POST['name2'];
      $textSociete = $_POST['societe'];
      $textMail = $_POST['mail'];
      $textPort = $_POST['telport'];
      $textFix = $_POST['telfix'];
      $textFax = $_POST['telfax'];
      $textMessage = $_POST['message'];
      //on convertie les caractètres HTML du message
      $textMessage = htmlentities($textMessage);
      //mise en forme du mail
      $message = "Nom : $textName \n Prénom : $textName2 \n Société : $textSociete \n Mail : $textMail \n Tél Port : $textPort \n Tél Fix : $textFix \n Tél Fax : $textFax \n Message: $textMessage";
      if( mail('Ton_mail@blabla.com','Nouveau contact',$message) ){
      echo 'Votre Mail a bien été transmis !';
      }
      else{
      echo 'une erreur est survenu lors de l\'envoi du message';
      }
      ?>

      </body>

      </html>
      0
  3. animostab Messages postés 3003 Date d'inscription   Statut Membre Dernière intervention   738
     
    Bonjour

    comme c'est du jquery as tu intégré la bibliothèque jquéry correspondante dans le <head> de ta page web ?

    sinon sans jquery voici un formulaire qui marche
    tu devras configurer ce qui est en gras et tout mettre dans la meme page
    ou mettre le php dans une autre page et donner l'URL dans action="chemin/page-du-formulaire"

    <form id="contact-form" action="chemin/page-du-formulaire" method="post">
    <div class="form-input-half-left form-input-border">
    <div class="form-input-background opacity_2"></div>
    <input id="name" type="text" name="name" value="nom *"/>
    </div>
    <div class="form-input-half-right form-input-border">
    <div class="form-input-background opacity_2"></div>
    <input id="email" type="text" name="email" value="email *"/>
    </div>
    <div class="form-input-large form-input-border">
    <div class="form-input-background opacity_2"></div>
    <input id="phone" type="text" name="phone" value="tel *"/>
    </div>
    <div class="form-input-textarea form-input-border">
    <div class="form-input-background opacity_2"></div>
    <textarea id="message" name="message">message *</textarea>
    </div>

    <span id="form-warning">Tous les Champs sont nécéssaire*)</span>
    </div>

    <input type="submit" name="submit" />
    </form>

    <?php
    if (isset($_POST['submit'])) {
    if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) {
    echo 'E-mail invalide !';
    }
    if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['message']) && isset($_POST['phone']) AND preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) {

    $nom = $_POST['name'];
    $phon = $_POST['phone'];
    $email = $_POST['email'];
    $mess = $_POST['message'];

    function get_ip() {
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
    } else {
    $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
    }

    $headers = 'From: "nom"<adresse@fai.fr>' . "\n";
    $headers .= 'Reply-To: adresse_de_reponse@fai.fr' . "\n";
    $headers .= 'Content-Type: text/plain; charset="UTF-8"' . "\n";
    $headers .= 'Content-Transfer-Encoding: 8bit';
    $sujet = "message d'un internaute";
    $message = 'Ce message est généré automatiquement. Une personne à rempli le formulaire de contact de ton site. Son nom est : ' . $nom . ", son adresse mail est :" . $email . " son téléphone est " . $phon . " et son message est :" . $mess . ' et son adresse ip : ' . get_ip();
    if (mail('TonAdresseMail', $sujet, $message, $headers)) {
    echo 'Le message a bien été envoyé';
    } else {
    echo 'Le message n\'a pu être envoyé';
    }
    }
    }
    ?>

    sinon voici un tuto ici http://apprendre-creer-sites.com/php/envoyer-des-mails-en-php.php
    Un petit merci vaut mieux qu'une grande ignorance
    0
  4. CDB Creations Messages postés 5 Statut Membre
     
    Merci beaucoup à vous deux pour vos réponses rapides, je teste ces formulaires et je vous tiens au courant.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. CDB Creations Messages postés 5 Statut Membre
     
    J'ai essayé vos 2 formulaires, malheureusement aucun ne marche sur mon site !!!
    Pour preuve celui de Lord Zero :

    compagniedesblocs.fr/contact2.html

    C'est à n'y rien comprendre !
    0
  7. animostab Messages postés 3003 Date d'inscription   Statut Membre Dernière intervention   738
     
    re bonjour

    fais une page de test avec l'extention .php avec cela dedans (remplacer avec ton email ce qui est en gras)

    <?php if (! mail ("monmail@domaine.com",$sujet,"message")){ echo "la fonction mail n'est pas activé"; }
    else { echo " c'est cool mec"; } ?>

    puis ouvre la page dans un navigateur
    Cela vérifie si la foncton mail() de ton hebergeur est activée

    si il y a "c'est cool mec" le problème vient de envoicontact.php qui est mal configuré

    sinon mail() n'est pas activé chez ton hebergeur
    Un petit merci vaut mieux qu'une grande ignorance
    0
  8. CDB Creations Messages postés 5 Statut Membre
     
    Bon, ben on dirait que la fonction mail n'est pas activée chez l'hébergeur...
    On avance c'est bien !! ^^
    Un grand merci à vous pour votre aide, je vais donc regarder du côté de l'hébergeur.
    0
    1. animostab Messages postés 3003 Date d'inscription   Statut Membre Dernière intervention   738
       
      ok bon courage
      0