Versio

Header Probleem

Overzicht Reageren

Alex L

Alex L

18/03/2011 01:02:52
Quote Anchor link
Hallo.

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
 
PHP hulp

PHP hulp

24/05/2012 20:45:19
Gesponsorde koppelingen:
 
Karl Karl

Karl Karl

18/03/2011 01:20:02
 
Willem Vyent

Willem Vyent

18/03/2011 01:26:24
Quote Anchor link
Headers kunnen slechts 1x worden verzonden, zou je toch
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ob_start(); ?>
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!
Gewijzigd op 18/03/2011 01:30:07 door Willem Vyent
 
Alex L

Alex L

18/03/2011 01:27:46
Quote Anchor link
Heb google al geraadpleegt, zover werkt geen enkele oplossing die op de eerste 12 pagina's stonden.

En ik wil zowiezo geen ob_start() gaan gebruiken.
Gewijzigd op 18/03/2011 01:28:55 door Alex L
 
Michiel bastinck

michiel bastinck

18/03/2011 01:33:40
Quote Anchor link
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?
 
Willem Vyent

Willem Vyent

18/03/2011 01:39:56
Quote Anchor link
ok, geen ob_start(), de fout zit vermoedelijk in line 17 of in eerdere regels, zou je het bestand kunnen posten, dan kunnen we ernaar even kijken...
Gewijzigd op 18/03/2011 01:40:38 door Willem Vyent
 
Alex L

Alex L

18/03/2011 01:44:38
Quote Anchor link
Regel 233:

} else { session_unset(); session_destroy(); header('location: index.php'); }


En header.php tot regel 18


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
session_start();
?>

<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">
 
Michiel bastinck

michiel bastinck

18/03/2011 01:59:02
Quote Anchor link
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.
 
Alex L

Alex L

18/03/2011 02:02:52
Quote Anchor link
Nee, het rare is, bij een pagina zonder de layout werkt ie dus wel, alleen zodra hij de header.php erbij moet laden (layout dus) werkt ie niet meer.

Wordt er een beetje gek van :P
 
Michiel bastinck

michiel bastinck

18/03/2011 02:19:36
Quote Anchor link
Ja dat begrijp ik. Deze error is irritant!

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.
 
Alex L

Alex L

18/03/2011 02:23:44
Quote Anchor link
Heb al een uitgebreide Error reporting toegevoegt, als ik deze aanzet blijft er geen enkele error/warning over maar dan werkt de header nog steeds niet dus dat helpt ook niet echt.

En dat laatste werkt helaas ook niet.
 
Willem Vyent

Willem Vyent

18/03/2011 02:49:09
Quote Anchor link
Geen white space in de pagina, ook niet voor of na
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php en ?>
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..
 
Alex L

Alex L

18/03/2011 02:55:37
Quote Anchor link
Al gedaan, geen resultaat.

Heb zowat alles gehad denk ik -_-'
 
Wouter J

Wouter J

18/03/2011 07:48:23
Quote Anchor link
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.
 
Yea Rupie

Yea Rupie

18/03/2011 08:44:27
Quote Anchor link
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.


leuke uitleg
 
Karl Karl

Karl Karl

18/03/2011 10:17:54
Quote Anchor link
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">
(...)


Alex L op 18/03/2011 01:44:38:
Regel 233:

} 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.
 
Alex L

Alex L

18/03/2011 15:18:29
Quote Anchor link
Heb het opgelost, had dus de header voor de sessie controle staan.

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
 
Jordi kroon
Redacteur

jordi kroon

18/03/2011 15:55:02
Quote Anchor link
iedereen maakt fouten . Ooit is een keer 3uur gekeken naar een script omdat ik wit scherm kreeg was ik een = vergeten voor een variabel
 
Chris
Beheerder

Chris

18/03/2011 15:59:37
Quote Anchor link
Error reporting aanzetten, heb je dat probleem niet ;-)
 



Overzicht Reageren