login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Headers already sent error..

Offline Babak - 30/07/2007 18:07
Avatar van BabakMySQL interesse Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\easyphp1-8\www\news.php:10) in d:\easyphp1-8\www\connect.php on line 3


Nou weet ik dat heel veel van jullie zeggen: doe er ob_start(); bovenaan. Maar heel veel scripters die ik ken doen dat niet, kan iemand mij helpen en mij aanraden wat ik moet doen?

11 antwoorden

Gesponsorde links
Offline kilian - 30/07/2007 18:08
Avatar van kilian Lid Kan je even je code geven? Zo kunnen we niet zien wat het probleem juist is.
Offline Babak - 30/07/2007 18:08 (laatste wijziging 30/07/2007 18:10)
Avatar van Babak MySQL interesse Wat wil je precies hebben? Connect.php line 3, of news.php line 10?

Edit: bij news.php, include ik: menu.php en titlebar.php

bij titlebar.php, include ik connect.php.


O: het werkt al, ik had titlebar.php erges in het midden van news.php, dus had ik connect.php uit tiltlebar gehaald en het bovenaan bij news.php gedaan, nu klopt het wel. Kan iemand dit checken, wat ik zeg of dat klopt?
Offline marten - 30/07/2007 18:12
Avatar van marten Beheerder http://www.sitemasters.be/FAQ/2/Foutmeldingen#faq2
Offline Babak - 30/07/2007 18:19
Avatar van Babak MySQL interesse Nog iets: Bij mijn index.php, heb ik meteen mijn login staan, maar ik wil dan checken of iemand al ingelogd is.. zo ja: meteen doorsturen naar news.php.

Maar, elke keer als ik bovenaan index.php zet:

  1. <? if(!empty($userid)){ header("Location: news.php");}?>


Dan zegt hij dus: undefined variable $userid, omdat hij nog niet door een session geset is. Weet iemand hoe ik dit wel moet doen?
Offline Rens - 30/07/2007 18:29
Avatar van Rens Gouden medaille

Crew algemeen
PHP.net: isset
Offline Babak - 30/07/2007 18:33
Avatar van Babak MySQL interesse if(!isset($_SESSION['c_userid'])){

Geeft ie alsnog een undefined index aan..
Offline vinTage - 30/07/2007 18:53
Avatar van vinTage Nieuw lid haal dat uitroep teken weg
if(isset(...
Offline Koen - 30/07/2007 20:09 (laatste wijziging 30/07/2007 20:24)
Avatar van Koen PHP expert
  1. if (!@IsSet($_SESSION['c_userid'])) {

@ zorgt ervoor dat het werkt, maar dat er geen error komt.
Edit: als je jouw versie wilt laten werken doe je beter zo 
  1. <? if(@IsSet($userid)){ header("Location: news.php");}
  2. // of
  3. if(@IsSet($_SESION['c_userid'])){ header("Location: news.php");}?>
Offline Ibrahim - 30/07/2007 21:08 (laatste wijziging 30/07/2007 21:09)
Avatar van Ibrahim PHP expert headers already sent kun je voorkomen door geen output te zenden naar de browser voordat je alle headers hebt verzonden, maar ob_start(); is gewoon een normale oplossing hoor ?

edit:
je hebt geluk dat je die undefined error had, anders was je topic allang dicht
Offline JBke - 30/07/2007 21:15
Avatar van JBke PHP gevorderde Is inderdaad EEN oplossing al ben ik niet voor het gebruik ervan. Script zodanig dat er GEEN enkele output wordt verzonden voordat je je header zend. GEEN echo's, niets van output dus. Werk met if, else controles en exit; na je output of ervoor.

ob_start() en ob_end_flush() vind ik enkel noodoplossingen maar dat is enkel mijn mening.
Offline vinTage - 30/07/2007 21:20
Avatar van vinTage Nieuw lid
siliecom14 schreef:
edit:
je hebt geluk dat je die undefined error had, anders was je topic allang dicht


Nah, hij vraagt niet of we zn error oplossen, hij vraagt hoe je het anders kan doen, oftewel, hoe moet het op JBke zijn manier..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s