Bonjour,

Je développe un formulaire de contact avec un script PHP unique mais mis en ligne sur différentes pages. Pour cela j'utilise la fonction include().

Voici le script des pages de contact :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php
if (isset($_GET['mail']))
{
     include('http://www.triangle.pro/sites/parking.php?domaine='.$_SERVER['HTTP_HOST'].'&mail='.$_GET['mail'].'&sujet='.$_GET['sujet'].'&message='.$_GET['message'].'');
}
else
{
	include('http://www.triangle.pro/sites/parking.php?domaine='.$_SERVER['HTTP_HOST'].'');
}
?>
Et le script de la page parking.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
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
 
<?php
if (isset($_GET['mail']))
{ 
     mail('geoffrey.hissel@numericable.fr', ''.$_GET['sujet'].'', 'Message laissé par '.$_GET['mail'].' :

'.$_GET['message'].'');
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META NAME="Keywords" CONTENT="nom de domaine, domaine, domaines, acheter domaine, acheter domaines, acheter nom de domaine, louer domaine, louer nom de domaine">
<title>Site en construction</title>
<style type="text/css">
#cadre
{
	position:absolute;
	top:50%;
	left:50%;
	height:500px;
	width:600px;
	margin-left:-300px;
	margin-top:-250px;
	border:1px solid #555;
}
#centre
{
	position:absolute;
	top:50%;
	left:50%;
	height:400px;
	width:400px;
	margin-left:-200px;
	margin-top:-200px;
	text-align:justify;
	padding:10px;
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px;
	color:#555;
}
</style>
</head>
 
<body>
<div id="cadre">
<form id="centre" action="<?php echo $PHP_SELF ?>" method="get">
Bienvenue,<br /><br />
Ce nom de domaine à été réservé pour la création d’un site thématique en cours de production.<br />
Néanmoins, si ce domaine vous intéresse, nous restons ouvert à toutes propositions de location et redirection.<br />
<br />
Cordialement<br />
Jacques Millet<br />
<br /><br />
<label>Mail :&nbsp;&nbsp;
  <input type="text" name="mail" id="mail" style="width:300px;" />
</label>
<br />
<label>Sujet :
  <input type="text" name="sujet" id="sujet" style="width:300px;" value="A propos du nom de domaine : <?php echo  $_GET['domaine'] ?>" />
</label>
<br />
<br />
<label>
  <textarea name="message" id="message" style="height:120px; width:380px;">Votre message</textarea>
</label>
<br /><br />
<input type="hidden" />
<label>
  <input type="submit" name="button" id="button" value="Envoyer" />
</label>
</form>
</div>
</body>
</html>
Les variables réceptionnées par la fonction mail() ressemblent à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
www.aloe-vera.pro/?mail=adresse%40hotmail.com&sujet=A+propos+du+nom+de+domaine+%3A+%27&message=Votre+message&button=Envoyer
Apparemment le script php ne prend en compte QUE les valeurs des variables avant le premier '+' qui séparent chaque mots.

J'ai fais le test de mettre des '_' entre les mots et cela fonctionne, donc le problème vient bien des '+' dans les variables $_GET.

Auriez-vous une solution à ce problème ?

Merci d'avance.