login script

Status
Niet open voor verdere reacties.

cyberexe

Gebruiker
Lid geworden
13 feb 2006
Berichten
144
hallo mensen,

ik heb een login script op een server draaien die een website aanstuurt.
als ik wil inloggen krijg ik de volgende error:

Warning: Cannot modify header information - headers already sent by (output started at /home/7/6/c/1318/1318/public_html/html/login.php:23) in /home/7/6/c/1318/1318/public_html/html/login.php on line 88

ik kon niets vinden op regel 88.
dit is regel 86 t/m 89:

<?php
header("Location: index.html"); /* Stuur de browser naar de PHP website */
exit; /* Zorg dat de code hieronder niet wordt uitgevoerd */
?>

kan iemand mij vertellen wat er fout in het script staat?

greetz, cyberexe
 
heeft te maken met hoe php en http 1.1 werkt:

http 1.1 en ook 1.0 denk ik, werken namelijk met headers gevolgd door data. Jouw pc, als je een website bezoekt send alleen headers, bv GET index.php user-agent:firefox location:www.google.be etc
De server zal dan terugzenden iets in de aard van
Http 200 Found
Location www.google.be
accept-encoding: gzip
set-cookie blabla

<b>de site</b>

Dit is maar hypothetisch en klopt niet eens, maar je ziet hoe het ongeveer werkt

Nu als je in php al html code laat zien, dan stuurt php automatisch al de headers, en die code. Als je erna nog in de headers wil prutsen zal dat niet meer gaan, omdat de headers al verzonden zijn.
 
Ik vermoed dat het simpelste wat je kan doen, met zoweinig mogelijk code te veranderen, een Output Buffer te maken. in het begin van je code zet je gewoon ob_start(); en bij elke exit zou je dan ob_end_flush(); moeten zetten. Het zou goed kunnen dat dat laatste niet eens nodig is maar just in case:)
 
Gewoon wat googlen had je erook gekregen hoor:
Bron : http://be2.php.net/manual/en/function.headers-sent.php

"ou can't add any more header lines using the header() function once the header block has already been sent. Using this function you can at least prevent getting HTTP header related error messages. Another option is to use Output Buffering."
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan