PHP expert |
|
@lightblade: Als je dat doet kun het het ook omwisselen, of dat ob_start() weglaten.
@all:
Session_start() moet worden aangeroepen voordat er html verstuurd is, dus ook vóór een enter.
Dat moet omdat de server dit doet als hij een pagina naar je browser stuurt:
1. Hij stuurt de headers, hierin staat bijvoorbeeld dat het een html-pagina is, en of er cookies geset moeten worden, en zo ja, welke.
2. Hij stuurt de htmlcode.
De headers moeten ALTIJD voor de htmlcode verstuurd worden. Dus als jij al html verstuurt, en dan session_start() aanroept krijg je een error. Dit is omdat session_start() een cookie verstuurt, en dat kan dus niet als er al html verstuurd is.
Dit is dus fout:
<html>
<body>
<?php
session_start();
?>
</body>
</html>
<html> <body> <?php ?> </body> </html>
Omdat <html> en <body> voor session_start() komt.
Enters mogen ook niet voor session start:
<?php
session_start()
?>
<html>
<head>
...
Maar dit is goed:
<?php
session_start();
?>
<html>
...
Omdat ob_start() ervoor zorgt dat de htmlcode pas aan het einde wordt verstuurd kun je dit ook gebruiken:
<?php
ob_start();
?>
<html>
<body>
<?php
session_start();
?>
</body>
</html>
HIER WORDT DE HTMLCODE PAS VERSTUURD.
<?php ?> <html> <body> <?php ?> </body> </html> HIER WORDT DE HTMLCODE PAS VERSTUURD.
Begrijp je het?
|