Bonjour à tous, cela fait longtemps que je développe et notamment en PHP et je n'ai jamais eu ce problème (pourtant avec une simple variable $_POST).
Je m'explique je développe un premeir site assez conséquent avec plein de formulaire et je n'ai pas de problème. Je fais une pause d'une heure pour quelqu'un qui a besoin de moi juste pour une simple page contact de son site à lui (un second site donc). Donc je stoppe le premier site. Comme il est déjà hébergé, pour plus de rapidité je créé deux pages à la racine de mon premier site: contact.php (qui contient le formulaire) et send_mail.php (censé récupéré par POST la valeur des champs et envoie un mail)
Ma page contact dont voici le code s'affiche sans problème
Code HTML : 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 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset=ISO-8859-1 /> <meta http-equiv="X-UA-Compatible" content="IE=8,chrome=1"> <style type="text/css"> html { background-color: #007d00; margin-top: 10px; font-family: arial; font-size: 12px; } body { margin: auto; margin-bottom: 10px; border: yellow 3px solid; width: 1024px; } table { margin: auto; margin-bottom: 10px; } input { border: black 1px solid; } textarea { width: 400px; height: 250px; border: black 1px solid; } p { margin: 30px; } #en-tete { background-image: url('en_tete.jpg'); background-repeat:no-repeat; height: 313px; } #centrer { margin-left: 450px; } </style> <title></title> </head> <body > <div id="en-tete"></div> <script type="text/javascript"> function validerForm(formulaire) { if (formulaire.nom.value == '') { alert("Vous devez saisir votre nom pour continuer!"); formulaire.nom.focus(); return false; } else if (formulaire.tel.value == '') { alert("Vous devez saisir votre num\351ro de t\351l\351phone pour continuer!"); formulaire.tel.focus(); return false; } else if (formulaire.mail.value == '') { alert("Vous devez saisir votre adresse Email pour continuer!"); formulaire.mail.focus(); return false; } else { return true; } } </script> <div> <form method="POST" action="send_mail.php"> <table> <tr><td>Nom :</td></tr> <tr><td><input type="text" id="nom" name="nom" size="30" /> *</td></tr> <tr><td>Nº de Tel :</td></tr> <tr><td><input type="text" id="tel" name="tel" size="30" /> *</td></tr> <tr><td>Email :</td></tr> <tr><td><input type="text" id="mail" name="mail" size="30" /> *</td></tr> <tr><td>Message :</td></tr> <tr><td><textarea name="message"></textarea></td></tr> </table> <p id="centrer"><input type="submit" name="envoyer" title="Envoyer" Value="Envoyer" onclick="return validerForm(this.form)" /></p> </form> </div> <p>Merci de nous envoyer cette demande de contact qui nous permettra de vous répondre dans les meilleurs délais.</p> </body> </html>
Ma page send_mail.php qui ne s'affiche pas:
Code PHP : 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 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset=ISO-8859-1 /> <meta http-equiv="X-UA-Compatible" content="IE=8,chrome=1"> <title></title> </head> <body> <?php echo 'hello'; die(); echo $_POST['message']; $message = ' <html> <head> </head> <body>'.$_POST['message'].' <p>Nom: '.$_POST['nom']).'</p> <p>Tel: '.$_POST['tel']).'</p></body> </html>'; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'To: jeancharles19@orange.fr'; $headers .= ' From: '.$_POST['mail']; $subject = "Mail contact depuis www.lesprit-immobilier.com"; $subject = html_entity_decode($subject, ENT_QUOTES, 'UTF-8'); $to = 'benjamin.duroy@sicame.fr'; if(mail($to, $subject, $message, $headers)) { echo "<div>Email envoyé!</div>"; } else { echo "<div>Erreur lors de l'envoie du mail</div>"; } header('Location: www.lesprit-immobilier.com'); ?> </body> </html>
quand je valide mon formulaire j'obtiens ça
On dirait qu'il ne trouve pas la page (pourtant à la racine je le précise)
Par contre si je me positionne sur l'adresse et que j'appuie sur Entrer, il m'ouvre le fichier.php comme il faut, et affiche mon hello attendu (remarquez que j'ai mis un die())
A mon avis c'est tout con, et ça fait tellement longtemps que j'ai pas écris si peu de code dans une seule page que ça me passe au-dessus de la tête xD
Alors oui j'aurai besoin d'un peu aide
Partager