Bonjour

j'utilise un script pour vérifier mon formulaire mais impossible de faire une redirection vers une page de remerciement avec header(Location:

voici le script que j'utilise :


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
 
 
$webmaster = "mail@site.com";
 
if(isset($_POST['envoyer'])){     
    $alerte = $_POST['envoyer']; 
    $nom = htmlentities($_POST['nom'], ENT_NOQUOTES);  
    $mail = htmlspecialchars($_POST['mail'], ENT_QUOTES);  
    $tel = htmlspecialchars($_POST['tel'], ENT_QUOTES); 
    $sujet = htmlspecialchars($_POST['sujet'], ENT_QUOTES); 
    $message = htmlspecialchars($_POST['ville'], ENT_QUOTES); 	
}
 
 
function verif_null($var){
    if($var!=""){
     return $var;
   }
}
 
function verif_mail($var) 
{
   $code_syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; 
      if(preg_match($code_syntaxe,$var)){ 
        return $var;
      }   
}
 
function verif_tel($var)  
{
   $code_syntaxe='#^[0-9]{9,18}$#'; 
      if(preg_match($code_syntaxe,$var)){
        return $var;
      }
}
function envoi_mail($webmaster,$nom,$mail,$sujet,$tel,$message){ //fonction qui envoie le mail
       $contenu_message = "Nom : ".$nom."\nMail : ".$mail."\nSujet : ".$sujet."\nTelephone : ".$tel."\nMessage : ".$message;
	   $entete = "From: ".$nom." <".$mail."> \nContent-Type: text/html; charset=iso-8859-1";
 
       mail($webmaster,$sujet,$contenu_message,$entete);
 
 
}
 
 
function verif_form($webmaster,$nom,$mail,$sujet,$tel,$message){         if(verif_null($nom)
		&& verif_null($sujet)
		&& verif_null($message)
		&& verif_tel($tel)
		&& verif_mail($mail)
		) 
		{ 
		   envoi_mail($webmaster,$nom,$mail,$sujet,$tel,$message);
		   $action = "go";
		   echo "<font color=\"red\"  size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>Tout les champs sont valider le mail est envoyé. Merci</strong></font><br>"; // Le mail est envoyé
		   echo "<font color=\"red\"  size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>".$action."</strong></font><br>";
		   if($action == "go") { header('Location: http://www.monsite.com/'); }
		}else{
		   echo "<font color=\"red\" size=\"3\" face=\"Verdana, Arial, Helvetica, sans-serif\" ><strong>Veuillez saisir correctement tous les champs en rouge.</strong></font><br>"; // Une erreur dans le formulaire
		}
}
 
?>
 
<br />
<?php 
if(isset($alerte)){ 
   verif_form($webmaster,$nom,$mail,$sujet,$tel,$message); 
}
?>

le script marche mais je n'arrive pas a savoir ou rajouter la redirection

j'ai mis le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
		   if($action == "go") { header('Location: http://www.monsite.com/'); }
après la vérification d'envoi du mail.

mais cela m'indique l'erreur suivante :

Warning: Cannot modify header information - headers already sent by (output started at /menu.php:108) in /formulaire.php on line 120
la ligne 120 étant la ligne avec header'Location


et mon menu.php comprend comme code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
$url = $_SERVER["PHP_SELF"]; 
$path = explode('/', $url); 
...
...
if($path[2] == 'contact') {
	$menu .= 'class="active"';
}
	$menu .= '><a href="/fr/contact">
pour mettre une classe="active" dans mon menu.

PS : je viens de virer mo menu et cette fosi ile me met le meme message avec navigation.php (sibear de gauche) qui elle en contient pas de script juste des includes du style

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php include ($_SERVER['DOCUMENT_ROOT'].'/navigation.php');/?>
qui est d'ailleur sur la même sturcture que moin en-tete avec les même type d'include qui se trouve avant mon menu et qui ne met pas le message ???


1°) le header(Location: est-il bien placé ???

2°) que veut dire le message d'erreur
Warning: Cannot modify header information - headers already sent by (output started at /menu.php:108) in /formulaire.php on line 120
???

Merci a tous