Cannot modify header information

Fermé
lovedirt - 27 déc. 2010 à 12:07
 lovedirt - 30 déc. 2010 à 18:58
Bonjour,


Je souhaite insérer une partie petite annonce sur mon site, cependant je rencontre l'erreur suivante :
Warning: Cannot modify header information - headers already sent by (output started at /mnt/143/sdb/c/2/frelaud.kevin/pa2.php:11) in /mnt/143/sdb/c/2/frelaud.kevin/pa2.php on line 78


J'ai déjà demandé de l'aide sur le SDZ mais cela n'a pas abouti, que faire!?

Voici ma page php en question:
<?php
			ob_start();
if (isset($_POST['go']) && $_POST['go']=='Signer') {

	if ((isset($_POST['auteur'])) && (isset($_POST['email'])) && (isset($_POST['message'])) && (isset($_POST['prix'])) && (isset($_POST['descri'])) && (isset($_POST['url'])) && (isset($_POST['tel']))) {
		// si les 3 variables ne sont pas vides, et si l'adresse E-mail est valide, alors, et seulement dans ce cas, on fera notre insertion dans la base
		if ((!empty($_POST['auteur'])) && (!empty($_POST['email'])) && (!empty($_POST['message'])) && (!empty($_POST['prix'])) && (!empty($_POST['descri'])) && (!empty($_POST['url'])) && (!empty($_POST['tel']))) {
			// on verifie le format de l'adresse E-mail saisie
			$test_mail = eregi ('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$', $_POST['email']);
			if ($test_mail) {
				// on se connecte à notre base
				$base = mysql_connect ('sql.free.fr', '***', '*****');
				mysql_select_db ('annonces', $base);

				// on prepare notre requête d'insertion des données
				$sql = 'INSERT INTO annonces (id, auteur, email, date_signature, message, prix, descri, url, tel) VALUES("'.mysql_escape_string($_POST['id']).'", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['email']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['message']).'", "'.mysql_escape_string($_POST['prix']).'", "'.mysql_escape_string($_POST['descri']).'", "'.mysql_escape_string($_POST['url']).'", "'.mysql_escape_string($_POST['tel']).'")';

				// on lance la requête
				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

				// on ferme la connexion à la base de données
				mysql_close();

				// on redirige le visiteur vers l'Accueil des petites annonces
				header('location: pa.php');
				

				// on termine le script courant
				exit();
			}
			else {
				$erreur = 'Votre adresse E-mail est invalide.';
			}
		}
		else {
			$erreur = 'Au moins un des champs est vide.';
		}
	}
	else {
		$erreur = 'Les variables nécessaires au script ne sont pas définies.';
	}
}
// on entre dans le cas où l'un des trois (au moins) champs n'a pas été rempli ou si l'adresse E-mail n'a pas été validée (en particulier, lorsque le visiteur charge pour la première fois cette page, vu que les 3 champs sont vides, le formulaire s'affichera). On remarque également que l'on met la valeur de chaque champs dans le value (c'est cela qui fait que si le visiteur ne remplit pas entièrement le formulaire et qu'il clique sur "Signer", et bien lorsqu'il sera redirigé vers le formulaire, ce qu'il aura déjà saisi sera conservé
ob_end_flush();
?>



Voir l'erreur ici: http://frelaud.kevin.free.fr/pa2.php

Merci de votre aide et bonnes fêtes de fin d'année à tous!

7 réponses

thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
27 déc. 2010 à 13:11
donc c'est ca "meta" modifier les headers de même que la fonction header() donc place ob_strat() au dessu de la ligne meta ou meme au tous debut du fichier
1
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
27 déc. 2010 à 16:55

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
<?php 
ob_start();  
?> 

tu à oublier que la balise html elle aussi envoie des headers ob_strat() toi etre au dessus elle ne doit pas être précéder même pas par un espace comme ceci
<?php 
ob_start();  
?> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
1
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
Modifié par avion-f16 le 30/12/2010 à 19:24
Salut.
Ton fichier doit immédiatement commencé par "<?php".
Ensuite vient la bufférisation.
Et comme tu es en UTF-8, vérifie qu'il n'y ait pas le caractère BOM.
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
1
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
27 déc. 2010 à 12:35
Salut,
je ne sais pas à quoi correspond la ligne 11 et 78 mais verifie bien qu'il y'a pas d'affichage ni d'espace normalement la bufferisation avec ob_start() devait palier à ca mais si il y'a un echo ou un espace avant ca ne sera pas utile dans ce cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut, merci de ta réponse.

Voici ma ligne 11 dans le fichier pa2.php
<meta name="description" content="Site Description Here" />


Et voici la ligne 78
				// on redirige le visiteur vers l'Accueil des petites annonces
				header('location: pa.php');
0
Voila ou j'ai placé mes tampons
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
<?php 
ob_start();  
?> 
<title>Prom0 Bmx</title> 

<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> 
<meta name="author" content="Erwin Aligam - styleshout.com" /> 
<meta name="description" content="Site Description Here" /> 
<meta name="keywords" content="keywords, here" /> 
<meta name="robots" content="index, follow, noarchive" /> 
<meta name="googlebot" content="noarchive" /> 

<link rel="stylesheet" href="images/VectorLover.css" type="text/css" /> 

</head> 

..... 

 <!-- footer starts -->   
 <div id="footer"> 
       
   <p> 
   © prom0Bmx 2010 - FRELAUD / BARBIER  
    
          
    
   <a href="http://www.bluewebtemplates.com/" title="Website Templates">Style créé</a> par<a href="https://www.styleshout.com/">styleshout</a> | 
   Valid <a href="http://validator.w3.org/check?uri=referer">XHTML</a> |  
   <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> 
    
              
    
<?php ob_end_flush(); ?>  
     </p> 


Cela me met encore l'header de la ligne ou il y a écrit
header('location:pa.php');

:(
0
MERCI !
Ca marche :)
Bonnes fêtes à vous tous!
0