[PHP] problème header

Résolu/Fermé
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 - 7 août 2009 à 20:36
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 - 9 août 2009 à 19:35
Bonjour,
j'ai voulu reprendre un script que j'ai utilisé sur un site (qui fonctionne très bien) et le mettre sur un autre mais j'ai une erreur qui s'affiche. Malgré cela le scripte fonctionne (ajout d'utilisateur) mais le problème est en rapport avec l'affichage.

Message d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/sites/altordj.com/web/poker/05/config.php:511) in /mnt/sites/altordj.com/web/poker/05/index.php on line 17

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/sites/altordj.com/web/poker/05/config.php:511) in /mnt/sites/altordj.com/web/poker/05/index.php on line 17

index.php:
<?
include("config.php");

if (!$HTTP_COOKIE_VARS['username'] || !$HTTP_COOKIE_VARS['smartid'])
	{
	viewheader();
	view_login_form();
	?>
	  <br>

  <?
	viewfooter();
	}

if ($HTTP_COOKIE_VARS['username'] || $HTTP_COOKIE_VARS['smartid'])
	{
	session_start();
	session_register('username');
	session_register('smartid');
	
	viewheader();
 	echo "<center>";
 	echo"<h4>-- Bienvenue ". $_SESSION['username'] ." --</h4>";
 	echo "</center>";
 	echo "<a href='membres.php'>Entrer dans l'espace membres</a>";
 	echo"<br>";
 	echo "<a href='logout.php'>Deconnexion</a></h3>";
 	?>

  <?
	viewfooter();
	}

?>


Partie gérant la balise header dans config.php :
function viewheader() {

    echo"<html><head><title></title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><link rel='stylesheet' href='style.css' type='text/css'><script type='text/javascript' language='JavaScript' src='fonctions.js'></script></head><body text='#000000' link='#000000' vlink='#000000' alink='#000000' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'><br>";

}
A voir également:

12 réponses

Bonjour

La fonction viewheader envoie des données au client.
À partir de ce moment, tu ne peux pus envoyer de header HTPP : ce n'est pas une question de php ni de HTML, c'est le protocole HTTP qui est fait comme ça.
Or, la fonction session_start(); que tu utilises ensuite fait appel aux headers http : tu n'a plus le droit de l'appeler à ce moment là.
Il n'y a pas deux façons de t'en sortir : il FAUT avoir appelé session_start AVANT d'appeler viewheader.

Au passage, tu parles de "balise header". Cette balise n'existe pas. En HTML, il existe une balise <head>. Elle n'a aucun rapport avec les headers du protocole HTTP.
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
8 août 2009 à 05:11
Mais session start est appelé avant view header....

Une autre idée?
0
Mais session start est appelé avant view header
Es-tu sûr que le viewheader(); de la ligne 6 n'est pas exécuté ?

La ligne 511 de config.php correspond bien à la fonction viewheader, sinon à quoi ?

Es-tu conscient que tes deux conditions if (!$HTTP_COOKIE_VARS['username'] || !$HTTP_COOKIE_VARS['smartid'])
et if ($HTTP_COOKIE_VARS['username'] || $HTTP_COOKIE_VARS['smartid'])
ne sont pas complémentaires l'une de l'autre ? Elle peuvent très bien être toutes les deux vraies, par exemple si $HTTP_COOKIE_VARS['username'] est défini et pas $HTTP_COOKIE_VARS['smartid'].

Enfin, le tableau $HTTP_COOKIE_VARS est obsolète, tu devrais utiliser $_COOKIE
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
9 août 2009 à 15:59
Mais ma question est : pourquoi ce script fonctionne dans une autres répertoire mais pas ici... Ces commentaires n'y répondent pas...
0
Mis à part le dernière ligne, ce ne sont pas des commentaires, mais des questions qui doivent aider au diagnostic.
0

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

Posez votre question
lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
9 août 2009 à 16:09
Bonjour,

A quoi correspond la ligne 511 dans config.php ?

On a souvent cette erreur car une ligne est "printé" bien avant que ta page soit initialise. Ce qui importe c'est de voir cette ligne "output started at /mnt/sites/altordj.com/web/poker/05/config.php:511"
A+
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
9 août 2009 à 18:12
Il n'y a que 256lignes à config.php

Concernant la complémentarité des conditions c'est du chinois pour moi... j'ai pompé le script...
je suis un newbie de la programmation...
0
Si le PHP dit que les sorties on commencé ligne 511, on peut légitimement supposer qu'il y a au moins 511 lignes. Je ne suis pas newbie et je n'ai jamais vu php se tromper à compter les lignes.
Peut-être y a-t-il un autre fichier config.php dans ton site. Nous parlons bien de celui qui est dans le répertoire /mnt/sites/altordj.com/web/poker/05/ ?
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
9 août 2009 à 18:50
En effet 509 lignes.....dsl
mais pas 511 lol :

<?php



$dbhost     = "XXXX";		

$dblogin    = "XXXX";			

$dbpassword = "XXXX";			

$dbname     = "XXXX";			

$dbtable     = "XXXX";

$imgs_folder = "XXXX";		





$max="20";



$champsrequis	= "Des champs n'ont pas été remplis.<br>";

$usermaxcar	= "20 caractères maximum pour le pseudo.<br>";

$usermincar	= "3 caractères minimum pour le pseudo.<br>";

$usercar	= "Le pseudo doit contenir des lettres.<br>";

$userspc	= "Le pseudo ne doit pas comporter d'espace";

$passmaxcar	= "10 caractères maximum pour le mot de passe.<br>";

$passmincar	= "5 caractères minimum pour le mot de passe.<br>";

$passspc	= "Le mot de passe ne doit pas comporter d'espace<br>";

$wrongident	= "Mauvais identifiants.<br>";

$usernamepris	= "Ce pseudo est déjà utilisé, merci d'en choisir un autre.<br>";

$emailpris	= "Cette adresse email est déjà utilisée, merci d'en choisir une autre.<br>";





function db_connect() {

	global $dbhost,$dblogin,$dbpassword,$dbname,$dbtable;

	$db = mysql_connect($dbhost, $dblogin, $dbpassword); 

	mysql_select_db($dbname,$db); 

	}



function compteur() {

	global $dbhost,$dblogin,$dbpassword,$dbname,$dbtable;

	$query = "SELECT * FROM $dbtable"; 

	$result = mysql_query($query);

	$nrows=@mysql_num_rows($result);

	echo "<b>$nrows</b> membres enregistrés";

}



function popu() {

	global $dbhost,$dblogin,$dbpassword,$dbname,$dbtable;

	$query = "SELECT id,username,clicks,date_reg FROM $dbtable ORDER BY clicks DESC, username LIMIT 0,10";

  	$exec = mysql_query ($query);

	while ($result = mysql_fetch_array ($exec)) {

    	$myid = $result["id"];

    	$username = $result["username"];

    	$clicks = $result["clicks"];

    	$date = $result["date_reg"];

	$annee = date("Y", $date);

	$mois = date("m", $date);

	$jour = date("d", $date);

	$heures = date("H", $date);

	$minutes = date("i", $date);

	$date = $jour."/".$mois."/".$annee." à ".$heures."h".$minutes;

    	if ($clicks > "20")

    	echo"<img src='puce_red.gif' border='0'> <a href=\"javascript:enter('fiche_membre.php?id=$myid','fiche','300','400')\" onMouseOver=\"status='ouvrir'; return true;\" onMouseOut=\"status='';\"><b>$username</b></a> - ($date) - ($clicks hits)<br>";

  	else

  	echo"<img src='puce_green.gif' border='0'> <a href=\"javascript:enter('fiche_membre.php?id=$myid','fiche','300','400')\" onMouseOver=\"status='ouvrir'; return true;\" onMouseOut=\"status='';\"><b>$username</b></a> - ($date) - ($clicks hits)<br>";

  	}

}



function lastmembres() {

	global $dbhost,$dblogin,$dbpassword,$dbname,$dbtable;

	$query = "SELECT id,username,clicks,date_reg FROM $dbtable ORDER BY date_reg DESC LIMIT 0,5";

  	$exec = mysql_query ($query);

	while ($result = mysql_fetch_array ($exec)) {

    	$myid = $result["id"];

    	$username = $result["username"];

    	$clicks = $result["clicks"];

    	$date = $result["date_reg"];

	$annee = date("Y", $date);

	$mois = date("m", $date);

	$jour = date("d", $date);

	$heures = date("H", $date);

	$minutes = date("i", $date);

	$date = $jour."/".$mois."/".$annee." à ".$heures."h".$minutes;

  	if ($clicks > "50")

    	echo"<img src='puce_red.gif' border='0'> <a href=\"javascript:enter('fiche_membre.php?id=$myid','fiche','300','400')\" onMouseOver=\"status='ouvrir'; return true;\" onMouseOut=\"status='';\"><b>$username</b></a> - ($date) - ($clicks hits)<br>";

  	else

  	echo"<img src='puce_green.gif' border='0'> <a href=\"javascript:enter('fiche_membre.php?id=$myid','fiche','300','400')\" onMouseOver=\"status='ouvrir'; return true;\" onMouseOut=\"status='';\"><b>$username</b></a> - ($date) - ($clicks hits)<br>";

 	}

}



function selectall() {

	global $dbhost,$dblogin,$dbpassword,$dbname,$dbtable;

	$requete = mysql_query("SELECT * FROM $dbtable ORDER BY username");

	$total = mysql_numrows($requete); 

	echo"<select name=\"MenuPop\" onChange=\"sel=this.options[this.selectedIndex].value;if (sel){twPopUp(sel,'MonPop','300','400',0)}\">";

	echo"<option>---------------------</option>";

	$i = 0;

	while ($i < $total)

	{

	$username = mysql_result($requete,$i,"username");

	$myid = mysql_result($requete,$i,"id");

	echo "<option value='fiche_membre.php?id=$myid'>$username</option>";

	$i++;

	}

	echo "</select>";

  }



function viewheader() {

    echo"<html><head><title></title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><link rel='stylesheet' href='style.css' type='text/css'><script type='text/javascript' language='JavaScript' src='fonctions.js'></script></head><body text='#000000' link='#000000' vlink='#000000' alink='#000000' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'><br>";

}



function viewfooter() {

    echo"</body></html>";

}



function view_login_form() {

   echo"

   <form action='login.php' method='post'>

   <table border='0' cellspacing='0' cellpadding='5' align='center' class='textfield2' width='200'>

   <tr>

   <td colspan='2' align='center'><b>Connexion</b><br>

   </td>

   </tr>

   <tr>

  <td colspan='2' align='center'>Identifiant

   <input type='text' class='textfield' name='username'>

   </td>

   </tr>

   <tr>

  <td colspan='2' align='center'>Mot de passe

   <input type='password' class='textfield' name='password'>

   </td>

   </tr>

   <tr><td colspan='2' align='center'><input type='submit' name='submit' value='ok' class='textfield'>

   <br>



   <a href='lostpw.php'>Mot de passe perdu</a><br>

   <a href='register.php' target='ifgauche'>Nouvel utilisateur</a><br>

   </td>

   </tr></form></table>

   ";

}





function view_pw_form() {

  echo"<table border='0' cellspacing='0' cellpadding='10' align='center' class='textfield2' width='200'><tr><td colspan='2' align='center'><b>Mot de passe perdu</b><br><br>";

echo"<font>Entrez l'adresse e-mail que vous avez fournie lors de votre inscription,";

echo"<br>votre mot de passe vous sera alors envoyé &agrave; cette m&ecirc;me adresse";

echo"</h2>";

echo"</font>";

echo"<form action='lostpw.php' method='post'>";

echo"<font><b>Cette adresse n'existe pas sur ce site</b></font><br>";

echo"<input class=textfield type=text name=email size='20'>";

echo"<br>";

echo"<input type='submit' class='textfield' name='submit' value='ok'>";

echo"</form>";

echo"</td></tr></table>";

}



function nav($nbtotal,

                          $nbenr,

                          $cfg_nbres_ppage,

                          $debut, $cfg_nb_pages,

                          $criteres)

{



       $lien_on         = '&nbsp;<A HREF="{cible}">{lien}</A>&nbsp;';

       $lien_off        = '&nbsp;{lien}&nbsp;';

       

    $query  = $criteres.'&amp;debut=';

    

    if ($debut >= $cfg_nbres_ppage)

    {

        $cible = $query.(0);

        $fleches =  "<<";

        $lien = str_replace('{lien}', $fleches, $lien_on);

        $lien = str_replace('{cible}', $cible, $lien);

    }

    else

    {

        $fleches =  "<<";

        $lien = str_replace('{lien}', $fleches, $lien_off);

    }

    $barre .= $lien."&nbsp;";

    

    if ($debut >= $cfg_nbres_ppage)

    {

        $cible = $query.($debut-$cfg_nbres_ppage);

        $fleches =  "<";

        $lien = str_replace('{lien}', $fleches, $lien_on);

        $lien = str_replace('{cible}', $cible, $lien);

    }

    else

    {

        $fleches =  "<";

        $lien = str_replace('{lien}', $fleches, $lien_off);

    }

    $barre .= $lien."&nbsp;";

    

    if ($debut >= ($cfg_nb_pages * $cfg_nbres_ppage))

    {

        $cpt_fin = ($debut / $cfg_nbres_ppage) + 5;  

        $cpt_deb = $cpt_fin - $cfg_nb_pages + 4; 

    }

    else

    {

        $cpt_deb = 1;



        $cpt_fin = (int)($nbtotal / $cfg_nbres_ppage);

        if (($nbtotal % $cfg_nbres_ppage) != 0) $cpt_fin++;



        if ($cpt_fin > $cfg_nb_pages) $cpt_fin = $cfg_nb_pages;

    }



    for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++)

    {

        if ($cpt == ($debut / $cfg_nbres_ppage) + 1)

        {

            $barre .= "<b>&nbsp;".$cpt."</b> ";

        }

        else

        {

            $barre .= "<A class=lien HREF='".$query.(($cpt-1)*$cfg_nbres_ppage);

            $barre .= "'>".$cpt."</A>&nbsp;";

        }

    }

    

    if ($debut + $cfg_nbres_ppage < $nbtotal)

    {

        $cible = $query.($debut+$cfg_nbres_ppage);

        $fleches = ">";

        $lien = str_replace('{lien}', $fleches, $lien_on);

        $lien = str_replace('{cible}', $cible, $lien);

    }

    else

    {

        $fleches = ">";

        $lien = str_replace('{lien}', $fleches, $lien_off);

    }

    $barre .= "&nbsp;".$lien;

    

    $fin = ($nbtotal - ($nbtotal % $cfg_nbres_ppage));

    if (($nbtotal % $cfg_nbres_ppage) == 0) $fin = $fin - $cfg_nbres_ppage;



    if ($fin != $debut)

    {

        $cible = $query.$fin;

       

        $fleches2 = ">>";

        $lien = str_replace('{lien}', $fleches2, $lien_on);

        $lien = str_replace('{cible}', $cible, $lien);

    }

    else

    {

        $fleches2 = ">>";

        $lien = str_replace('{lien}', $fleches2, $lien_off);

    }

    $barre .= "&nbsp;".$lien;



    return($barre);

}

?>
0
lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
9 août 2009 à 18:55
Les lignes blanches sont des lignes !!

Ton fichier a 510 lignes ... Dis moi apres ton ?>, il n'y a pas un ligne blanche ?
Le header n'a pas ete defini a ce niveau et une ligne blanche initialiserais tes pages et engendrait un rejet du header suivant.
0
Comme tu le constates toi même, dans ton post il y a une ligne vide entre chacune des lignes de ton script. Les 256 lignes deviennent donc 512.
C'est certainement le saut de ligne qu'il y a après le ?> final qui est le début de sorties des données et provoque cette erreur.
Avec quel éditeur as-tu créé ce fichier ?
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
9 août 2009 à 19:02
Alors en effet c'était une partie du problème.... l'index fonctionne
en revanche membres.php pose problème :

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 41

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 43

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 45

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 47

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 49

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 51

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 53

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 55

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 7 in /mnt/sites/altordj.com/web/poker/05/membres.php on line 69


<?

include("config.php");

	

	session_start();

	if(!session_is_registered('username') ||!session_is_registered('smartid'))

    	{

    	viewheader();

    	echo "-- Vous ne pouvez pas accèder à cette zone --<br>";

    	echo"<b>L'accès est réservé aux membres</b>";



    	echo"<a href='index.php'>Connexion</a>";

    	viewfooter();

    	exit;

    	}

	

	viewheader();

	db_connect();

	$req = "SELECT * FROM $dbtable WHERE id='$smartid'";

	$res = mysql_query($req);



	$username = mysql_result($res,$i,"username");

	$email = mysql_result($res,$i,"email"); 

	$url = mysql_result($res,$i,"url"); 

	$photo = mysql_result($res,$i,"photo"); 

	$bouton = mysql_result($res,$i,"bouton");

	$clicks = mysql_result($res,$i,"clicks");

	$ip = mysql_result($res,$i,"ip");

	$date = mysql_result($res,$i,"date_reg");

	$annee = date("Y", $date);

	$mois = date("m", $date);

	$jour = date("d", $date);

	$heures = date("H", $date);

	$minutes = date("i", $date);

	$date = $jour."/".$mois."/".$annee;

	$droits = mysql_result($res,$i,"droits");

	



	echo"<a href=\"fiche_membre.php?id=". $_SESSION['smartid']. "\" title=\"voir votre profil\" target=\"ifgauche\"><IMG SRC=\"../pic/bot/d01.jpg\" border=\"0\"></a><br>";

	echo"<a href='maj.php?id=". $_SESSION['smartid']. "' target=\"ifgauche\"><IMG SRC=\"../pic/bot/d02.jpg\" border=\"0\"></a><br>";

	echo"<a href='memberlist.php' target=\"ifgauche\"><IMG SRC=\"../pic/bot/d03.jpg\" border=\"0\"></a><br>";

	echo"<a href='../03/myadmin.php' target=\"ifgauche\"><IMG SRC=\"../pic/bot/d04.jpg\" border=\"0\"></a><br>";

	echo"<a href='../galerie/index.php' target=\"ifgauche\"><IMG SRC=\"../pic/bot/d11.jpg\" border=\"0\"></a><br>";

	echo"<a href='../07/listemessages.php' target=\"ifgauche\"><IMG SRC=\"../pic/bot/d07.jpg\" border=\"0\"></a><br>";

	echo"<a href='index.php' target=\"ifdroite\"><IMG SRC=\"../pic/bot/d05.jpg\" border=\"0\"></a><br>";

	echo"<a href='logout.php' target=\"ifdroite\"><IMG SRC=\"../pic/bot/d06.jpg\" border=\"0\"></a><br>";



if ($droits == admi){

?>

	<a href="../01/admin.php" target="ifgauche"><IMG SRC="../pic/bot/d09.jpg" border="0"></a><br>

	<a href="../03/adminall.php" target="ifgauche"><IMG SRC="../pic/bot/d08.jpg" border="0"></a><br>

<?

}

exit;

?>



	viewfooter();

?>




Le problème est à chaque ligne contenant $i...
0
netanonima Messages postés 36 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 3 février 2013 1
9 août 2009 à 19:35
Grrr.... nan c'est bon je devais juste me relogguer.... merci de votre aide si précieuse!!!!!!!
0