Header Probleem
Ben sinds kort met PHP bezig.
Heb al een compleet script voor mijn website geschreven maar heb nog 1 probleem waar ik zelf niet de oplossing voor kan vinden.
Cannot modify header information - headers already sent by (output started at /home/****/layout/header.php:17) in /home/***/includes.php on line 233
Het vreemde is dus dat regel 17 in mijn header.php is:
<td align="center" width="300" valign="middle" background="layout/bg1.jpg" bgcolor="#ffffff">
Heb al gecontroleerd op witte ruimtes, alle pagina's zijn in orde.
Ik wil niet ob_start() gebruiken maar het probleem zelf oplossen.
Iemand enige tips?
Gewijzigd op 18/03/2011 01:09:44 door Alex L
Cannot modify header information - headers already sent by (output started at
header
Moet meer dan genoeg informatie zijn.
header
Moet meer dan genoeg informatie zijn.
op de eerste regel van je php bestand willen plaatsen en dan kijken of je probleem is opgelost?
er is mogelijk wel een andere oplossing maar dat is niet altijd het geval...
Als niet opgelost wil ik je vragen om je source code te gaan posten want dan wil ik er best even naar kijken en misschien zijn er wel meer hier die je erbij willen proberen te helpen..
Succes!
Headers kunnen slechts 1x worden verzonden, zou je toch er is mogelijk wel een andere oplossing maar dat is niet altijd het geval...
Als niet opgelost wil ik je vragen om je source code te gaan posten want dan wil ik er best even naar kijken en misschien zijn er wel meer hier die je erbij willen proberen te helpen..
Succes!
Gewijzigd op 18/03/2011 01:30:07 door Willem Vyent
Er wordt al iets verstuurd naar je browser voordat je je header aanroept. Dat moet je weten te achterhalen. Wat doe je in includes.php op regel 233?
Gewijzigd op 18/03/2011 01:40:38 door Willem Vyent
} else { session_unset(); session_destroy(); header('location: index.php'); }
En header.php tot regel 18
<html>
<head>
<title>Hoi</title>
<link rel="stylesheet" type="text/css" href="layout/style.css">
</head>
<body bgcolor="#ffffff" text="#000000" link="#000000" alink="#000080" vlink="#000000" topmargin="0" leftmargin="0">
<div align="center">
<!-- Main Logo -->
<table width="661" cellspacing="0" cellpadding="0" border="0" bgcolor="#ffffff">
<tr bgcolor="#FFFFFF">
<td align="center" width="300" valign="middle" background="layout/bg1.jpg" bgcolor="#ffffff">
Is het een timed event, zoals inactive->header('Location: index.php')? Ik zou proberen om de header tag naar boven in je code proberen te plaatsen.
Wordt er een beetje gek van :P
Heb je dit geprobeerd om bovenaan de pagina te zetten?
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting (E_ALL);
Haal van de betreffende paginas de ?> tag weg... Dan kan je sowieso geen whitespace hebben.
En dat laatste werkt helaas ook niet.
dan kan het formaat waarin het is opgeslagen het probleem ook veroorzaken.
Zou je de php file kunnen openen, met je favoriete tekst editor en vervolgens de inhoud in kladblok te plakken en als ANSI formaat op te slaan als .php bestand, geef het gewoon de oorspronkelijke naam en test of het werkt..
Geen white space in de pagina, ook niet voor of na Zou je de php file kunnen openen, met je favoriete tekst editor en vervolgens de inhoud in kladblok te plakken en als ANSI formaat op te slaan als .php bestand, geef het gewoon de oorspronkelijke naam en test of het werkt..
Heb zowat alles gehad denk ik -_-'
header kun je daar nog een header toevoegen of aanpassen. Zo'n header wordt gestuurd voordat er output op het beeldscherm komt. Als je dus eerst iets echoëd of HTML schrijft dan is er al output op het scherm en kan je niet nog eens een header sturen.
Je moet het voorstellen als een trein, de mensen zijn de headers en als de trein eenmaal vertrokken is kan daar niet nog een header bij. Want die is immers al verzonden. Daarom die header already sent (header is al verzonden) error.
Haal dus alle output boven de header functie weg. Sowieso is het handig om alle PHP verwerking boven het doctype te laten gebeuren.
Elke pagina stuurt headers(HTTP request) naar de browser. Hierin staat de belangrijke infomatie over die pagina. Met de PHP functie Je moet het voorstellen als een trein, de mensen zijn de headers en als de trein eenmaal vertrokken is kan daar niet nog een header bij. Want die is immers al verzonden. Daarom die header already sent (header is al verzonden) error.
Haal dus alle output boven de header functie weg. Sowieso is het handig om alle PHP verwerking boven het doctype te laten gebeuren.
Wouter J op 18/03/2011 07:48:23:
Elke pagina stuurt headers(HTTP request) naar de browser. Hierin staat de belangrijke infomatie over die pagina. Met de PHP functie header kun je daar nog een header toevoegen of aanpassen. Zo'n header wordt gestuurd voordat er output op het beeldscherm komt. Als je dus eerst iets echoëd of HTML schrijft dan is er al output op het scherm en kan je niet nog eens een header sturen.
Je moet het voorstellen als een trein, de mensen zijn de headers en als de trein eenmaal vertrokken is kan daar niet nog een header bij. Want die is immers al verzonden. Daarom die header already sent (header is al verzonden) error.
Haal dus alle output boven de header functie weg. Sowieso is het handig om alle PHP verwerking boven het doctype te laten gebeuren.
Je moet het voorstellen als een trein, de mensen zijn de headers en als de trein eenmaal vertrokken is kan daar niet nog een header bij. Want die is immers al verzonden. Daarom die header already sent (header is al verzonden) error.
Haal dus alle output boven de header functie weg. Sowieso is het handig om alle PHP verwerking boven het doctype te laten gebeuren.
leuke uitleg
Alex L op 18/03/2011 01:02:52:
(...)
Het vreemde is dus dat regel 17 in mijn header.php is:
<td align="center" width="300" valign="middle" background="layout/bg1.jpg" bgcolor="#ffffff">
(...)
Het vreemde is dus dat regel 17 in mijn header.php is:
<td align="center" width="300" valign="middle" background="layout/bg1.jpg" bgcolor="#ffffff">
(...)
Alex L op 18/03/2011 01:44:38:
Regel 233:
} else { session_unset(); session_destroy(); header('location: index.php'); }
(...)
} else { session_unset(); session_destroy(); header('location: index.php'); }
(...)
php.net header:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Staat er toch duidelijk.
Schaam me dood, paar jaar scripten en dan door zoiets simpel vast komen te zitten -__-"
Gewijzigd op 18/03/2011 15:36:09 door Alex L
iedereen maakt fouten . Ooit is een keer 3uur gekeken naar een script omdat ik wit scherm kreeg was ik een = vergeten voor een variabel
Error reporting aanzetten, heb je dat probleem niet ;-)