IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire de contact ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut formulaire de contact ne fonctionne pas
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $(window).load(function(){
            $('#contact-form').forms({
                ownerEmail:'mon.nom@monemail.eu'
            })
        })
    Avec mon adresse mail à la place de mon.nom@monemail.eu

    et voici le code php qui s'y rattache via un fichier MailHandler.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <%@ 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.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    (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:'nom.prenom@monemail.eu',
    						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 : "nom.prenom@monemail.eu" mon adresse mail.

    merci.

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Salut,

    Perso je n'y connais globablement pas grans chose en javascript.

    Néanmoins si tu modifies ta page PHP avec ça est ce que ca fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try{
    if(!mail($owner_email, $subject, $messageBody, $headers)){
    throw new Exception('mail failed');
    }else if(mail($owner_email, $subject, $messageBody, $headers)){
    echo 'mail sent';
    }
    }catch(Exception $e){
    echo $e->getMessage() ."\n";
    }
    Aurélien

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Ou sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try{
    if(!mail($owner_email, $subject, $messageBody, $headers)){
    throw new Exception('mail failed');
    }else{
    mail($owner_email, $subject, $messageBody, $headers);
    echo 'mail sent';
    }
    }catch(Exception $e){
    echo $e->getMessage() ."\n";
    }
    Aurélien

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour tes réponses et suggestions. Malheureusement ça ne fonctionne toujours pas.

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Août 2010
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant E-Business

    Informations forums :
    Inscription : Août 2010
    Messages : 216
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par watcha_watcha Voir le message
    Merci pour tes réponses et suggestions. Malheureusement ça ne fonctionne toujours pas.
    Malheureusement je suis totalement incompétent pour t'aider davantage.

    Bon courage pour ton projet.

    Aurélien

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut salut !!!
    je ne sais c'est vous avez pu résoudre votre problème, mais si ce n'est pas le cas ; je vous propose de mettre au niveau du formulaire de mettre le chemin exacte de votre fichier MailHandler.php ....
    ie : action="bin/MailHandler.php" method="post"

    j'espère que ça va reglé votre problème !!
    bon courage !!

Discussions similaires

  1. Lancer un formulaire via javascript : ne fonctionne pas
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/02/2009, 08h45
  2. [A-00] Formulaire de connexion ne fonctionne pas.
    Par Guillaume 78 dans le forum VBA Access
    Réponses: 21
    Dernier message: 29/10/2008, 16h58
  3. formulaire php qui ne fonctionne pas
    Par kate59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/04/2008, 14h40
  4. formulaire de connexion ne fonctionne pas
    Par masterix59 dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2007, 01h31
  5. Réponses: 4
    Dernier message: 22/11/2006, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo