[PHP] problème header
Résolu
netanonima
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
netanonima Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
netanonima Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
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:
Partie gérant la balise header dans config.php :
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:
- [PHP] problème header
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- 400 bad request request header or cookie too large - Forum Windows
- Retour a la ligne php ✓ - Forum PHP
- Php alert ✓ - Forum PHP
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.
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.
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
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
Mais ma question est : pourquoi ce script fonctionne dans une autres répertoire mais pas ici... Ces commentaires n'y répondent pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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+
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+
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...
Concernant la complémentarité des conditions c'est du chinois pour moi... j'ai pompé le script...
je suis un newbie de la programmation...
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/ ?
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/ ?
En effet 509 lignes.....dsl
mais pas 511 lol :
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é à cette mê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 = ' <A HREF="{cible}">{lien}</A> '; $lien_off = ' {lien} '; $query = $criteres.'&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." "; 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." "; 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> ".$cpt."</b> "; } else { $barre .= "<A class=lien HREF='".$query.(($cpt-1)*$cfg_nbres_ppage); $barre .= "'>".$cpt."</A> "; } } 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 .= " ".$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 .= " ".$lien; return($barre); } ?>
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.
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.
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 ?
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 ?
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
Le problème est à chaque ligne contenant $i...
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...