Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/10/2011, 09h47   #1
 
Inscription : novembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 4
Points : -2
Points : -2
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 :
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 :
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 :
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 :
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.
watcha_watcha est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/10/2011, 14h01   #2
 
Inscription : novembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 4
Points : -2
Points : -2
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 :
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.
watcha_watcha est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/10/2011, 18h15   #3
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
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 :
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
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 18h17   #4
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Ou sinon

Code :
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
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 19h30   #5
 
Inscription : novembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 4
Points : -2
Points : -2
Merci pour tes réponses et suggestions. Malheureusement ça ne fonctionne toujours pas.
watcha_watcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 19h34   #6
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
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
__________________
Salutations à tous les amis du forum Développez

http://www.dusk.fr
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2012, 15h03   #7
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 1
Points : 1
Points : 1
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 !!
madjisaf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web