Bonsoir,

Je viens poster un message ici avant de me retrouver complètement chauve!

Sur une de mes pages de mon site, et seulement celle-là, mes header(....) ne fonctionnement pas et me donnent une belle erreur :
Warning: Cannot modify header information - headers already sent by (output started at /home/lafolied/public_html/envoi_mail_annonce.php:26) in /home/lafolied/public_html/centre/formulaire_mail_annonce.php on line 38
Voici le code:

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
<?php
	require("php/connexion_base.php");
 
	if(isset($_GET['id'])){
		$id_annonce = $_GET['id'];
		$_SESSION['id_annonce_mail'] = $_GET['id'];
	}else{
		$adresse="affiche_annonce_visu.php?id=".$_SESSION['id_annonce_mail'];
		if((!isset($_POST['nom']) || $_POST['nom'] == "") || (!isset($_POST['mail']) || $_POST['mail'] == "") || (!isset($_POST['message']) || $_POST['message'] == "") ){
			$_SESSION['envoi_mail'] = false;
			header("location:".$adresse);
		}else{
			$id_annonce = $_POST['id'];
			$titre = $_POST['titre'];
			$nom = $_POST['nom'];
			$mail = $_POST['mail'];
			$mail_troqueur = $_POST['mail_troqueur'];
			$tel = $_POST['tel'];
			$msg = $_POST['message'];
 
			$headers ="From: ......\r\n";
			$headers.="Reply-To: ".$mail."\r\n";
			$headers.="Content-Type: text/html; charset='UTF-8'\r\n";
			$headers.="Content-Transfer-Encoding: 8bit\r\n";
 
			$message ="Bonjour,<br/><br/>";
			$message.=$nom." vous a envoyé le message suivi concernant votre annonce \"".$titre."\":<br/>";
			$message.="<br/><br/>";
			$message.=$msg."<br/><br/>";
			$message.=$nom." ne connaîtra votre adresse e-mail uniquement si vous répondez à son message."."<br/>";
			$message.="Merci pour votre confiance.<br/><br/>";
 
			if(mail($mail_troqueur, "Message concernant votre annonce : \"".$titre."\" sur ......", $message, $headers)){
				$_SESSION['envoi_mail'] = true;
				header("location:".$adresse);
			}else{
				$_SESSION['envoi_mail'] = false;
				header("location:".$adresse);
			}
		}
	}
 
	$req = "select titre, identifiant, mail from troqueurs 
	inner join annonces on annonces.id_troqueur = troqueurs.num_id
	where num_annonce = ".$id_annonce;
	$result = mysql_query($req) or die("Impossible de récupérer les infos troqueur");
 
	while($data = mysql_fetch_array($result)){
		$titre = $data['titre'];
		$identifiant = $data['identifiant'];
		$mail = $data['mail'];
	}
?>
Vous souhaitez envoyer un message à <?php echo $identifiant; ?> à propos de l'annonce "<?php echo $titre; ?>"<br/><br/>
<form method="POST" action="envoi_mail_annonce.php" >
	<p>Votre nom* : <input type="text" name="nom" <?php if(isset($_SESSION["ident"])){echo"value='".$_SESSION["ident"]."'";} ?>/></p>
	<p>Votre mail* : <input type="text" name="mail" <?php if(isset($_SESSION["mail"])){echo"value='".$_SESSION["mail"]."'";} ?>/></p> 
	<p>Votre numéro de téléphone : <input type="text" name="tel" <?php if(isset($_SESSION["tel"])){echo"value='".$_SESSION["tel"]."'";} ?>/></p>
	<p><textarea name="message" cols=60 rows=10></textarea>*</p>
	<input type="hidden" name="id" value= <?php echo $id_annonce; ?> />
	<input type="hidden" name="titre" value= <?php echo $titre; ?> />
	<input type="hidden" name="mail_troqueur" value= <?php echo $mail; ?> />
	<p><input type="submit" value="Envoyer" /></p>
</form>
Le mail part bien mais c'est tout...
J'ai d'autres header dans d'autres pages et je n'ai pas de souci alors que l'encodage est le même pour toutes les pages. Doit y avoir une erreur ici c'est sûr mais impossible de la trouver.
J'ai vérifié les éventuels espaces qu'il pourrait y avoir sur les balises <?php et ?> de la page contenant ce morceau mais j'ai rien trouvé.
Je ne sais plus où chercher.

L'un de vous a t'il une idée? merci d'avance!

PS : j'ai oublié de préciser que mon site est hébergé chez planethoster si ça peut aider... Sous wamp je n'avais pas tous ces problèmes