Problème formulaire de contact !

Fermé
CDB Creations Messages postés 5 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 13 décembre 2013 - 11 déc. 2013 à 11:26
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 13 déc. 2013 à 21:32
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

Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
11 déc. 2013 à 13:46
Salut, "il ne fonctionne pas", y'as t'il un message d'erreur?
0
CDB Creations Messages postés 5 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 13 décembre 2013
11 déc. 2013 à 14:04
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
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
11 déc. 2013 à 16:01
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
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 11/12/2013 à 16:26
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
CDB Creations Messages postés 5 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 13 décembre 2013
12 déc. 2013 à 13:52
Merci beaucoup à vous deux pour vos réponses rapides, je teste ces formulaires et je vous tiens au courant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CDB Creations Messages postés 5 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 13 décembre 2013
13 déc. 2013 à 11:06
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
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 13/12/2013 à 13:08
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
CDB Creations Messages postés 5 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 13 décembre 2013
13 déc. 2013 à 13:36
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
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
13 déc. 2013 à 21:32
ok bon courage
0