formulaire de contact ne fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire de contact ne fonctionne pas

Re: formulaire de contact ne fonctionne pas

par Freankys » 23 mars 2012, 17:02

Bonjour,
Ayant moi aussi le même problème, le formulaire ne m’envoie pas les réponses, pouvez-vous me dire quels parametres je dois modifier dans mon JS.
Pour info j'ai exactement les mêmes fichiers que Watcha (JS, PHP et HTML)

Merci d'avance

Re: formulaire de contact ne fonctionne pas

par yohan video » 16 mars 2012, 11:09

Bonjour a tous,

La solution a ton problème est dans le dossier js le fichier forms.js
il faut le configurer

bon courage

Re: formulaire de contact ne fonctionne pas

par Mazarini » 13 janv. 2012, 16:52

Pour espérer une réponse, il faudrai que tu donnes plus d'information que le fait que ca ne fonctionne pas.

Tu peux afficher le contenu des variables pour vérification et surtout indiquer les messages d'erreur ou décrire le comportement.

Re: formulaire de contact ne fonctionne pas

par wiwiii » 13 janv. 2012, 15:08

Bonjour , as-tu trouvé une solution? j'ai exactement le meme souci merci ..

Re: formulaire de contact ne fonctionne pas

par watcha » 29 oct. 2011, 14:26

au cas ou, je joins également le fichier javascript qui va avec, peut-être que ça vient de ça ??!? J'avoue être largué...

le fichier form.js :

Code : Tout sélectionner

(function($){ $.fn.extend({ forms:function(opt){ if(opt===undefined) opt={} this.each(function(){ var th=$(this), data=th.data('forms'), _={ errorCl:'error', emptyCl:'empty', invalidCl:'invalid', successCl:'success', successShow:'4000', mailHandlerURL:'bin/MailHandler.php', ownerEmail:'[email protected]', stripHTML:true, smtpMailServer:'localhost', targets:'input,textarea', controls:'a[data-type=reset],a[data-type=submit]', validate:true, rx:{ ".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'}, ".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'}, ".objet":{rx:/.{1}/,target:'input'}, ".message":{rx:/.{10}/,target:'textarea'} }, preFu:function(){ _.labels.each(function(){ var label=$(this), inp=$(_.targets,this), defVal=inp.val() label.data({defVal:defVal}) inp .bind('focus',function(){ if(inp.val()==defVal) inp.val('') }) .bind('blur',function(){ if(!inp.val()) inp.val(defVal) else (_.isValid(label) ?_.showErrorFu(label) :_.hideErrorFu(label)), (_.isEmpty(label) ?_.showEmptyFu(label) :_.hideEmptyFu(label)) }) label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide() }) _.success=$('.'+_.successCl,_.form).hide() }, isValid:function(el){ var ret=true if(_.isEmpty(el)) ret=false, el.addClass(_.invalidCl) else $.each(_.rx,function(k,d){ if(el.is(k)) d.rx.test(el.find(d.target).val()) ?(el.removeClass(_.invalidCl),ret=false) :el.addClass(_.invalidCl) }) return ret }, isEmpty:function(el){ var ret=false, field=el.find(_.targets).val() if(field==''||field==el.data('defVal')) ret=true return ret }, validateFu:function(){ _.labels.each(function(){ var th=$(this) _.isEmpty(th) ?_.showEmptyFu(th) :_.hideEmptyFu(th) _.isValid(th) ?_.showErrorFu(th) :_.hideErrorFu(th) }) }, submitFu:function(){ _.validateFu() if(!_.form.has('.'+_.invalidCl).length) $.ajax({ type: "POST", url:_.mailHandlerURL, data:{ name:$('.name input',_.form).val(), email:$('.email input',_.form).val(), objet:$('.objet input',_.form).val(), message:$('.message textarea',_.form).val(), owner_email:_.ownerEmail, stripHTML:_.stripHTML }, success: function(){ _.showFu() } }) }, showFu:function(){ _.success.slideDown(function(){ setTimeout(function(){ _.success.slideUp() _.form.trigger('reset') },_.successShow) }) }, controlsFu:function(){ $(_.controls,_.form).each(function(){ var th=$(this) th .bind('click',function(){ _.form.trigger(th.data('type')) return false }) }) }, showErrorFu:function(label){ label.find('.'+_.errorCl).slideDown() }, hideErrorFu:function(label){ label.find('.'+_.errorCl).slideUp() }, showEmptyFu:function(label){ label.find('.'+_.emptyCl).slideDown() _.hideErrorFu(label) }, hideEmptyFu:function(label){ label.find('.'+_.emptyCl).slideUp() }, init:function(){ _.form=this _.labels=$('label',_.form) _.preFu() _.controlsFu() _.form .bind('submit',function(){ if(_.validate) _.submitFu() else _.form[0].submit() return false }) .bind('reset',function(){ _.labels.removeClass(_.invalidCl) _.labels.each(function(){ var th=$(this) _.hideErrorFu(th) _.hideEmptyFu(th) }) }) } } if(!data) (typeof opt=='object'?$.extend(_,opt):_).init.call(th), th.data({cScroll:_}), data=_ else _=typeof opt=='object'?$.extend(data,opt):data }) return this } }) })(jQuery)
avec là aussi à la place de : "[email protected]" mon adresse mail.

merci.

formulaire de contact ne fonctionne pas

par watcha » 29 oct. 2011, 13:51

Bonjour,

J'ai acheté un site avec à l'intérieur un formulaire que j'ai en partie modifié selon mes exigences, mais celui-ci ne fonctionne pas dans le sens ou je ne reçois pas de mail alors qu'il semble partir correctement selon le formulaire. Je suis grand débutant en php, alors je viens solliciter votre aide...

Voici un lien vers la page provisoire :http://www.charlesetstone.fr/test/index-5.html

voici le code du formulaire présent dans la page html :
<form action="MailHandler.php" method="post" id="contact-form">
<div class="success"> Votre message a bien été envoyé!<br>
<strong>Vous serez contacté prochainement.</strong> </div>
<fieldset>
<label class="name">
<input type="text" value="Nom:">
<span class="error">*Votre nom n'est pas correct.</span> <span class="empty">*Cette case est vide.</span> </label>
<label class="email">
<input type="email" value="E-mail:">
<span class="error">*Votre adresse email n'est pas correct.</span> <span class="empty">*Cette case est vide.</span> </label>
<label class="objet">
<input type="text" value="Objet:">
<span class="error">*Votre objet n'est pas correct.</span> <span class="empty">*Cette case est vide.</span> </label>
<label class="message">
<textarea>Message:</textarea>
<span class="error">*Le message est trop court.</span> <span class="empty">*Cette case est vide.</span> </label>
<div class="clear"></div>
<div class="btns"><a href="#" class="button" data-type="reset">Nettoyer</a><a href="#" class="button" data-type="submit">Envoyer</a></div>
</fieldset>
</form>
Au début de ma page html, dans les balises <head> j'ai également ça :
$(window).load(function(){
$('#contact-form').forms({
ownerEmail:'[email protected]'
})
})
Avec mon adresse mail à la place de [email protected]

et voici le code php qui s'y rattache via un fichier MailHandler.php :
<?php
$owner_email = $_POST["owner_email"];
$headers = 'From:' . $_POST["email"];
$subject = 'Nouveau message de votre Site Web ' . $_POST["name"];
$messageBody = "";

$messageBody .= '<p>Visiteur: ' . $_POST["name"] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Addresse Email: ' . $_POST['email'] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Objet: ' . $_POST['objet'] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";

if($_POST["stripHTML"] == 'true'){
$messageBody = strip_tags($messageBody);
}

try{
if(!mail($owner_email, $subject, $messageBody, $headers)){
throw new Exception('mail failed');
}else{
echo 'mail sent';
}
}catch(Exception $e){
echo $e->getMessage() ."\n";
}
?>
lors de mon achat il existait également un fichier nommé MailHandler.ashx, je me suis dis qu'il fallait choisir entre le fichier php et le fichier ashx, du coup je n'ai pas tenu compte de celui-ci (auquel je ne comprend pas grand chose en plus), je ne pense pas m'être trompé mais bon... Au cas ou voici à quoi ressemble ce fichier :
<%@ WebHandler Language="C#" Class="Handler" Debug="true" %>

using System;
using System.Web;
using System.Net.Mail;
using System.Text.RegularExpressions;

public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer"));
string owner_email = context.Request.Form.Get("owner_email");
string subject = "A message from your site visitor " + context.Request.Form.Get("name");
string email = context.Request.Form.Get("email");
string messageBody = "";

messageBody += "<p>Visitor: " + context.Request.Form.Get("name") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Email Address: " + context.Request.Form.Get("email") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Phone Number: " + context.Request.Form.Get("phone") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Message: " + context.Request.Form.Get("message") + "</p>\n";


MailMessage message = new MailMessage();

try{
message.From = new MailAddress(email.ToString());
}catch (FormatException e) {
context.Response.Write(e.Message);
}

message.To.Add(owner_email);
message.Subject = subject;
if(context.Request.Form.Get("stripHTML") == "true"){
message.IsBodyHtml = false;
messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty);
}else{
message.IsBodyHtml = true;
}
message.Body = messageBody;

try{
mailClient.Send(message);
}catch (SmtpException e) {
context.Response.Write("mail failed");
}
context.Response.Write("mail sent");
}

public bool IsReusable {
get {
return false;
}
}
}
Je n'ai touché à rien sur celui-ci.

Qu'est-ce qu'il me manque pour que ça fonctionne correctement ?
D'avance je vous dis un très grand merci pour votre aide.