Erreur ...

Résolu
Bonjour,
j'aurais besoin que quelqu'un m'explique à quoi correspond ce message d'erreur SVP :

Warning: Cannot modify header information - headers already sent by (output started at F:\Site PHP\EasyPHP 3.0\www\Cineco.fr\titre.php:14) in F:\Site PHP\EasyPHP 3.0\www\Cineco.fr\resultats_recherche.php on line 206


Merci d'avance
--
Cinéco.fr  | Le site Cinéphile!
www.cineco.fr
Configuration: Windows
Firefox 3.0.11

26 réponses

Résumé de la discussion

Le message d'erreur décrit un envoi d'en-têtes HTTP après que du contenu a été envoyé, ce qui se produit fréquemment lorsque une page PHP appelle header() après avoir produit du texte ou du HTML. Dans le fil, les solutions les plus pertinentes consistent à déplacer l'appel header() avant tout affichage, vérifier l'absence d'espaces ou de caractères avant <?php, et vérifier les fichiers inclus pour éviter toute sortie prématurée. D'autres échanges suggèrent d'activer l'output buffering ou de corriger des détails comme la présence d'un BOM dans un fichier, car ils provoquent aussi l'envoi préalable d'une sortie et bloquent les redirections via header.

Bobot (l’IA à votre service)
  1. Je l'ai mit comme suit :
    header("Location: accueil.php?valeur=1") ;
    1. header("Location: accueil.php") ; essaye sans la méthode get pour voir ....
      1. et avec le lien complet
        Header("Location: F:\Site PHP\EasyPHP 3.0\www\Cineco.fr\accueil.php") ; ???
        1. essaye ça
          <script language="javascript">
          document.location.replace("accueil.php?valeur=1");
          </script>
          1. Sa fonctionne mais, c'est long pour changé de page !

            Tu c'est pourquoi sa ne fonctionne pas le header?
            1. C'est bizarre car dans d'autres pages, j'utilise header aussi et sa fonctionne !!

              Autrement, y'aurais pas un moyen pour redirigé plus rapidement?
              1. Bin en faite je vois pas du tout pkoi ton header ne fonctionne pas d'autant plus si t l'a utilisé sur d'autre page....
                Et non dsl je ne connais rien d'autre....
                1. Cette fonction doit être utilisée avant tout envoi au navigateur cible. L'erreur t'indique qu'il y a déjà eu un envoi.

                  Pour tester, met ce header en début de code (ligne 1) et tu verras qu'il fonctionne.

                  En gros header doit être utiliser avant tout code HTML ou tout code PHP qui écrit dans ta page.

                  Histoire d'être plus clair, je vais mettre quelques exemples:

                  Ce code marche:
                  <? Header("Location: accueil.php") ; ?>
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                  <html xmlns="http://www.w3.org/1999/xhtml">
                  <head>
                  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


                  Celui la non car tu a déjà envoyé toto au client:
                  <body> toto
                  <? Header("Location: accueil.php") ; ?>
                  


                  Celui la non plus car php à déjà écrit quelque chose dans la page:
                  <? 
                  echo 'toto';
                  Header("Location: accueil.php") ; 
                  ?>
                  
                  1. j'ai vu dans mon code que le header en premier fonctionne car j'en ai un.

                    Mais du coup pour celui là, j'ai besoin de le mettre en débu de code, donc comment je fais?
                    1. Ben faut le déplacer dans le code de ta page. Il me faudrait un peu de code pour te répondre mieux...
                      1. ok je te passe le code de ma page de recherche :

                        <?php 
                        if(isset($_POST['champrecherche']))
                        	{
                        	$champrecherche = $_POST['champrecherche'];
                        	$typerecherche = $_POST['typerecherche'];}
                        
                        	$champrecherche = trim($champrecherche);
                        	if($champrecherche!=''){
                        	$nbr_film=0;
                        	$nbr_cm=0;
                        		if($typerecherche == 1){
                        	include('tts/include/top.php');?>
                        	<div id="milieu">
                        				<div id="corp">
                        					<div id="lienh">
                        <?php  	$sql = 'SELECT * FROM liens';
                        		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                        		while($data = mysql_fetch_assoc($req))
                        		{
                        echo'					&nbsp;&nbsp;<a href="'.$data['accueil_site'].'">Accueil</a>';
                        		}?>
                        					</div>
                        					<div id="corp_box">
                        						<div id="corp_boxh"></div>
                        						<div id="txt_corp">
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									Votre recherche
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									<?php echo $champrecherche;?>
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box_bleu">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text">
                        <?php		
                        
                        	
                        	//--------------------//
                        $requete = "SELECT COUNT(*) as nbr_film FROM info_film WHERE id_info_film!='1' AND nom LIKE '".$champrecherche."'";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_film']>0){
                        echo'<u>Films : ('.$reponse['nbr_film'].')</u>';
                        
                        	$sql = "SELECT * FROM info_film WHERE id_info_film!='1' AND nom LIKE '".$champrecherche."' ORDER BY id_info_film";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        		
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="film/film.php?yourtabsmenu=fiche&fiche='.$data['id_info_film'].'#fiche">'.$data['nom'].'</a>';
                        	}
                        
                        		$nbr_film = 1;
                        	}else{
                        	$nbr_film = 0;
                        	}
                        //--------------------//
                        $requete = "SELECT COUNT(*) as nbr_cm FROM info_court WHERE nom_court LIKE '".$champrecherche."'";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_cm']>0){
                        echo'<br/><br/><u>Court m&eacute;trage : ('.$reponse['nbr_cm'].')</u>';
                        
                        	$sql = "SELECT * FROM info_court WHERE nom_court LIKE '".$champrecherche."' ORDER BY id_info_court";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        		
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="cm/court.php?courttabsmenu=fiche&fichecourt='.$data['id_info_court'].'#fiche">'.$data['nom_court'].'</a>';
                        	}
                        	
                        		$nbr_cm = 1;
                        	}else{
                        	$nbr_cm = 0;
                        	}
                        	
                        	if(($nbr_film==0) AND ($nbr_cm==0)){
                        	?>Aucunes donn&eacute; redirection
                        <SCRIPT LANGUAGE="JavaScript">document.location.href="accueil.php?valeur=1"</script><?php
                        	//echo'<div class="txt_ncenter">Nous sommes d&eacute;sol&eacute;s mais <br/>nous n\'avons trouv&eacute; aucun r&eacute;sultat pour votre recherche</div>';
                        	}
                        //--------------------//?>
                        									</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        						</div>
                        						<div id="corp_boxb"></div>
                        					</div>
                        				</div>
                        <?php include('tts/include/right.php');?>
                        			</div>
                        <?php include('tts/include/bottom.php');
                         }else{
                        if($typerecherche == 2){
                        		include('tts/include/top.php');?>
                        	<div id="milieu">
                        				<div id="corp">
                        					<div id="lienh">
                        <?php  	$sql = 'SELECT * FROM liens';
                        		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                        		while($data = mysql_fetch_assoc($req))
                        		{
                        echo'					&nbsp;&nbsp;<a href="'.$data['accueil_site'].'">Accueil</a>';
                        		}?>
                        					</div>
                        					<div id="corp_box">
                        						<div id="corp_boxh"></div>
                        						<div id="txt_corp">
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									Votre recherche
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									<?php echo $champrecherche;?>
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box_bleu">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text">
                        <?php		
                        	$mots = explode(" ", $champrecherche);
                        	$nombre_mots = count($mots);
                        	
                        $valreq_film = '';
                        for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant la variable $nombre_mots_boucle de 1 à chaque fois
                        {
                        $valreq_film .= ' AND nom LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valreq_film
                        }
                        //$valreq_film = ltrim($valreq_film,' AND'); //suppression de AND au début de la boucle
                        
                        
                        //--------------------//
                        $requete = "SELECT COUNT(*) as nbr_film FROM info_film WHERE id_info_film!='1' ".$valreq_film."";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_film']>0){
                        echo'<u>Films : ('.$reponse['nbr_film'].')</u>';
                        
                        	$sql = "SELECT * FROM info_film WHERE id_info_film!='1' ".$valreq_film." ORDER BY id_info_film";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="film/film.php?yourtabsmenu=fiche&fiche='.$data['id_info_film'].'#fiche">'.$data['nom'].'</a>';
                        	}
                        
                        		$nbr_film = 1;
                        	}else{
                        	$nbr_film = 0;
                        	}
                        	
                        $valreq_cm = '';
                        for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant la variable $nombre_mots_boucle de 1 à chaque fois
                        {
                        
                        $valreq_cm .= ' AND nom_court LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valreq_cm
                        }
                        $valreq_cm = ltrim($valreq_cm,' AND'); //suppression de AND au début de la boucle
                        	
                        //--------------------//
                        $requete = "SELECT COUNT(*) as nbr_cm FROM info_court WHERE ".$valreq_cm."";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_cm']>0){
                        echo'<br/><br/><u>Court m&eacute;trage : ('.$reponse['nbr_cm'].')</u>';
                        
                        	$sql = "SELECT * FROM info_court WHERE ".$valreq_cm." ORDER BY id_info_court";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        		
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="cm/court.php?courttabsmenu=fiche&fichecourt='.$data['id_info_court'].'#fiche">'.$data['nom_court'].'</a>';
                        	}
                        	
                        		$nbr_cm = 1;
                        	}else{
                        	$nbr_cm = 0;
                        	}
                        	if(($nbr_film==0) AND ($nbr_cm==0)){
                        	?>Aucunes donn&eacute; redirection
                        <SCRIPT LANGUAGE="JavaScript">document.location.href="accueil.php?valeur=1"</script><?php
                        	//echo'<div class="txt_ncenter">Nous sommes d&eacute;sol&eacute;s mais <br/>nous n\'avons trouv&eacute; aucun r&eacute;sultat pour votre recherche</div>';
                        	}
                        
                        //--------------------//
                        ?>
                        									</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        						</div>
                        						<div id="corp_boxb"></div>
                        					</div>
                        				</div>
                        <?php include('tts/include/right.php');?>
                        			</div>
                        <?php include('tts/include/bottom.php');
                        
                        
                        	}else{
                        	if($typerecherche == 3){
                        		include('tts/include/top.php');?>
                        	<div id="milieu">
                        				<div id="corp">
                        					<div id="lienh">
                        <?php  	$sql = 'SELECT * FROM liens';
                        		$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                        		while($data = mysql_fetch_assoc($req))
                        		{
                        echo'					&nbsp;&nbsp;<a href="'.$data['accueil_site'].'">Accueil</a>';
                        		}?>
                        					</div>
                        					<div id="corp_box">
                        						<div id="corp_boxh"></div>
                        						<div id="txt_corp">
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									Votre recherche
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text" class="txt_ncenter">
                        									<?php echo $champrecherche;?>
                        								</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        							<div id="box_bleu">
                        								<div id="box_anghg"></div>
                        								<div id="box_anghd"></div>
                        								<div id="text">
                        <?php		
                        	$mots = explode(" ", $champrecherche);
                        	$nombre_mots = count($mots);
                         
                        $valreq_film = '';
                        for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant la variable $nombre_mots_boucle de 1 à chaque fois
                        {
                        
                        $valreq_film .= ' OR nom LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valreq_film
                        }
                        $valreq_film = ltrim($valreq_film,' OR'); //suppression de AND au début de la boucle
                        
                        
                        
                        
                        //--------------------//
                        $requete = "SELECT COUNT(*) as nbr_film FROM info_film WHERE id_info_film!='1' AND (".$valreq_film.")";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_film']>0){
                        echo'<u>Films : ('.$reponse['nbr_film'].')</u>';
                        
                        	$sql = "SELECT * FROM info_film WHERE id_info_film!='1' AND (".$valreq_film.") ORDER BY id_info_film";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        		
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="film/film.php?yourtabsmenu=fiche&fiche='.$data['id_info_film'].'#fiche">'.$data['nom'].'</a>';
                        	}
                        		$nbr_film = 1;
                        	}else{
                        	$nbr_film = 0;
                        	}
                        	
                        $valreq_cm = '';
                        for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant la variable $nombre_mots_boucle de 1 à chaque fois
                        {
                        
                        $valreq_cm .= ' OR nom_court LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valreq_cm
                        }
                        $valreq_cm = ltrim($valreq_cm,' OR'); //suppression de AND au début de la boucle
                        	
                        //--------------------//
                        $requete = "SELECT COUNT(*) as nbr_cm FROM info_court WHERE ".$valreq_cm."";
                        $reponse = mysql_query($requete) or die('Erreur SQL !<br/>'.$requete.'<br/>'.mysql_error());
                        $reponse= mysql_fetch_array($reponse);
                        if ($reponse['nbr_cm']>0){
                        echo'<br/><br/><u>Court m&eacute;trage : ('.$reponse['nbr_cm'].')</u>';
                        
                        	$sql = "SELECT * FROM info_court WHERE ".$valreq_cm." ORDER BY id_info_court";
                        	$req = mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
                        		
                        	while($data = mysql_fetch_assoc($req)){
                        		echo '<br/><a href="cm/court.php?courttabsmenu=fiche&fichecourt='.$data['id_info_court'].'#fiche">'.$data['nom_court'].'</a>';
                        	}
                        	
                        	$nbr_cm = 1;
                        	}else{
                        	$nbr_cm = 0;
                        	}
                        	if(($nbr_film==0) AND ($nbr_cm==0)){
                        	?>Aucunes donn&eacute; redirection
                        <SCRIPT LANGUAGE="JavaScript">document.location.href="accueil.php?valeur=1"</script><?php
                        	//echo'<div class="txt_ncenter">Nous sommes d&eacute;sol&eacute;s mais <br/>nous n\'avons trouv&eacute; aucun r&eacute;sultat pour votre recherche</div>';
                        	}
                        //--------------------//
                        ?>
                        									</div>
                        								<div id="bas-box">
                        									<div id="box_angbg"></div>
                        									<div id="box_angbd"></div>
                        								</div>
                        							</div>
                        						</div>
                        						<div id="corp_boxb"></div>
                        					</div>
                        				</div>
                        <?php include('tts/include/right.php');?>
                        			</div>
                        <?php include('tts/include/bottom.php');
                        	}else{
                        	header("Location: accueil.php?valeur=0") ;
                        }}
                        }
                        
                        
                        	}else{
                        	header("Location: accueil.php?valeur=0") ;
                        }?>

                        1. Et a la place de

                          <code<SCRIPT LANGUAGE="JavaScript">document.location.href="accueil.php?valeur=1"</script>></code>

                          c'est normalement

                          header("Location: accueil.php?valeur=1") ;
                          1. Ouf, je n'aurais pas le temps de relire tout ça...

                            Seulement, tu vois bien qu'ici tu envoie le header à la fin du code alors que d'autres infos ont déjà été envoyées.
                            • 1
                            • 2