Hallo,
Ik ben bezig met een ledenscript in mijn layout te ''zetten'', maar als ik inlog op de login.php dan geeft hij deze error na het inloggen:
Warning: Cannot modify header information - headers already sent by (output started at /home/humor4li/domains/humor4life.nl/public_html/Members/login.php:11) in /home/humor4li/domains/humor4life.nl/public_html/Members/login.php on line 97
En op de 97e regel staat dit, hier gaat het ook om:
header("Location: index.php");
En mijn vraag is nu: WAT moet ik hieraan aanpassen om te zorgen dat ik die error niet krijg?
Voordat header() aangeroepen wordt mag er nog 0,0 (ook wel: niets, noppes, nada, geen enkele, niet iets, enz.) output naar de browser verzonden worden. Dus voordat die functie aangeroepen wordt, kun je ook geen HTML naar de browser sturen. Dit gaat dus ook niet werken:
Maar... Nou is het dat die output niet meteen moet worden ''verzonden''. Want het is de bedoeling dat als ik inlog, dat ik dan naar index.php wordt gestuurd. Dus niet dat ik meteen naar de index.php wordt gestuurd! Dit is dat stukje...
Zorg dat je de logica (php) en output (html) gescheiden houdt!
Dit betekent dus dat je alle php code aan het begin van je script hebt staan en de output pas aan het einde. Als je in PHP output genereert sla je die tijdelijk op in een variabele of array. Pas als alle logica afgehandeld is, ga je die output naar de browser sturen...
ps. De functie session_register() stamt nog uit de middeleeuwen. Deze syntax is meer van deze tijd:
<?php
$_SESSION['var'] = 'waarde';
?>
Je zult waarschijnlijk inderdaad wat aan de opbouw van je script moeten veranderen om het op die manier werkend te krijgen. Het is echter wel de enige juiste manier...