erreur header

Répondre
guppy71
le 26/11/2007 à 12:28
guppy71
bonjour,

j'ai un problème que je ne comprends pas.
Sur une page j'ai un bandeau gauche sur lequel s'affiche un formulaire pour la sélection de dates.
parallèlement je lance une page "conex" pour la connection à la base plus des vérifications et stat.
lorsque je sélectionne une date j'ai cette erreur.

(Malgrè cette erreur affichage de la page l'année sélectionnée s'effectue correctement)

1852
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\timbres ver2\conex.php:193) in c:\program files\easyphp1-8\www\timbres ver2\bandeau_gauche-collec.php on line 8

si je mets un "@" devant header je n'ai plus ce message mais par contre la date sélectionnée reste affichée (par exemple 1852)

Merci de votre aide
Guppy71
LA GLOBULE
le 26/11/2007 à 13:31
LA GLOBULE
Ben c'est simple, dans c:\program files\easyphp1-8\www\timbres ver2\bandeau_gauche-collec.php à la ligne 8, tu fais un header alors que dans c:\program files\easyphp1-8\www\timbres ver2\conex.php à la ligne 193, tu dois faire un echo, ou bien tu affiches du HTML.

Or quand tu fais un header, tu ne DOIS PAS afficher du texte avant.
guppy71
le 26/11/2007 à 15:12
guppy71
je reviens avec mon problème. Pour la page "conex" je n'ai plus d'erreur, par contre maintenant j'ai une erreur à la ligne 42

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\timbres ver2\collection\accueil-collection.php:42)

ci dessous le bout de code de la page "accueil-collection"

<?php
session_start();
$_SESSION['chemin']="../";
require_once("../conex.php");
if(!isset($HTTP_POST_VARS['ch1'])) $ch1="on"; else $ch1=$HTTP_POST_VARS['ch1'];
if(!isset($HTTP_POST_VARS['an'])) $an=""; else $an=$HTTP_POST_VARS['an'];
if(!isset($HTTP_POST_VARS['mot'])) $mot=""; else $mot=$HTTP_POST_VARS['mot'];
if(!isset($HTTP_POST_VARS['rech'])) $rech=""; else $rech=$HTTP_POST_VARS['rech'];
$_SESSION['lien']="accueil-collection.php";$sel="";$re=1;
$_SESSION['page']=$_SESSION['lien'];
?>
<? if($rech=="ok") {
$yvert= mysql_real_escape_string($_POST['yvert']);
$result = mysql_query("SELECT * FROM collec");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
if($yvert==trim($row[1])) {$_SESSION['num']=$yvert;$re=2;}
}
if($re==2) header("location: pop.php");
if($re==1) $re=0;
}
?>
<?php // petit moteur de recherche
if($mot=="ok") {
$_SESSION['recherche']="";
$_SESSION['rechannee']="";
$lst=key($_POST['bouton']);
if($lst=="mot") {
$_SESSION['recherche']=mysql_real_escape_string($_POST['rechmot']);
$_SESSION['ch1']=$ch1;
}
if($lst=="annee") {
$_SESSION['rechannee']=mysql_real_escape_string($_POST['rechannee']);
}
header("location: ../recherche.php");
}//fin de if mot
?>
<head>
<title>Les timbres de France, site pour philatéliste, faire des echanges, gerer une collection</title>
<META NAME="description" CONTENT="collection de timbres de france, échanges de timbres, forum, visiter la collection, gérer votre collection en ligne, l'histoire du timbre">
<META NAME="keywords" CONTENT="timbre,timbres,TIMBRE,TIMBRES,timbre de france,timbres de france,timbre de France,timbres de France,France,france,timbre francais,timbres francais,timbres français,timbres personnalisés, TIMBRE PERSONNALISE,stamps,stamp,stamp french,philatélie,philatelie,philatélie echange,collection timbre,collection timbres,collections,gerer collection,cote timbres,cote timbre,cotes timbres,cotes timbre,échange,echange timbres,echange timbre,annonce,annonce timbres,forum timbres,forum echange timbre,1849,2005">
<META NAME="robots" CONTENT="all">
<META NAME="REVISIT-AFTER" CONTENT="3 days">
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1">
<link rel="stylesheet"type="text/css"href="../style.css">
</head>
<body>
<table width="800" align="center">
<tr>
<td colspan="2"><?php require_once("../bandeau_haut.php");?></td>
</tr>
<tr>
<td width="184" valign="top"><?php require_once("../bandeau_gauche-collec.php");?></td>


Il n'y a pas de "blanc" les scripts demmarent à la ligne 1
Guppy71
guppy71
le 26/11/2007 à 15:16
guppy71
la ligne 42 correspond à :

<META NAME="keywords" CONTENT="timbre,timbres,TIMBRE,TIMBRES,timbre de france,timbres de france,timbre de France,timbres de France,France,france,timbre francais,timbres francais,timbres français,timbres personnalisés, TIMBRE PERSONNALISE,stamps,stamp,stamp french,philatélie,philatelie,philatélie echange,collection timbre,collection timbres,collections,gerer collection,cote timbres,cote timbre,cotes timbres,cotes timbre,échange,echange timbres,echange timbre,annonce,annonce timbres,forum timbres,forum echange timbre,1849,2005">
Guppy71
guppy71
le 26/11/2007 à 16:02
guppy71
Petite info supplémenataire, j'ai installé EasyPHP1-8 et lorsque je reviens à EasyPHP1-7 je n'ai plus ces problèmes ??
Guppy71
LA GLOBULE
le 26/11/2007 à 16:08
LA GLOBULE
Fais un exit(); après ton header...

Et vire les ?><? (à la ligne 11 et 22 sur le forum : ca correspond à ce que tu appelles un "blanc") qui ne sert à rien dans ton code à part inclure un retour chariot qui va refaire buguer ton truc.

Et pense au BB-Code, t'es relou à ne jamais l'utiliser.
guppy71
le 26/11/2007 à 16:35
guppy71
J'ai fait ce que tu m'as dit (exit() et virer ?><?) mais ça ne change rien, désolé
Guppy71
LA GLOBULE
le 26/11/2007 à 17:30
LA GLOBULE
Quelle est ton erreur complète ?

(la je viens de voir que ton PHP ne comporte pas qu'un seul header : à chaque header, tu dois faire un exit();)

Mais a priori, le header que tu cherches à faire se fait dans bandeau_gauche-collec.php.
Mais tu ne peux pas faire de header dans ce fichier. En effet, a priori, ce fichier est inclu dans du HTML de accueil-collection.php (via ton require_once), or je t'ai dis qu'on ne doit pas afficher de HTML avant de faire un header.
guppy71
le 26/11/2007 à 18:21
guppy71
OK je vais voir comment modifier, mais comment expliquer que dans la version précédente de mon EasyPHP je n'avais pas ce problème ?

d'autre part ça m'oblige, je pense, à mettre ces scripts sur touttes les pages concernées donc je perds tout l'intérêt d'avoir un bandeau par "include" (il ne restera que des liens sur le bandeau)
Y a t-il une autre solution ?
Guppy71
LA GLOBULE
le 26/11/2007 à 18:33
LA GLOBULE
Ben tu dois mettre tout ton PHP avant ton HTML.
C'est aussi simple que cela.

Et si tu n'avais pas d'erreur avant, c'est que ton EasyPHP était configuré en mode gentil et ne couinait pas sur certaines erreurs.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours