Ik maak een website, waarin ik in de index.php met <?php session_start(); ?> een sessie open.
De php include een php, login.php
Login.php logt netjes in, en doet <?php $_SESSION['login'] = 1; ?>
Maar als ik hem vraag of er een sessie genaamd login is ingesteld krijg ik niets, zelfs in een echo krijg ik niets.
Ofwel, de gebruiker is niet meer ingelogd.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/vhosts/.....nl/httpdocs/new/index.php:4) in /home/vhosts/.....nl/httpdocs/new/index.php on line 8
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/vhosts/.....nl/httpdocs/new/index.php:4) in /home/vhosts/.....nl/httpdocs/new/index.php on line 8
Je mag geen enkele output hebben voordat je session_start aan roept (dus geen html maar ook geen spatie/enter o.i.d.)
De error zegt dat je output begint op regel 4 van index.php terwijl je session_start aanroept op regel 8.
Nou wat er voor
<?php session_start(); ?>
staat is alleen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
?
Onbekende gebruiker
24-11-2009 09:55
En dat is html die erboven staat en dat mag dus niet.
Een sessie start moet altijd boven de output.
Het is net als een brief, die stop je in een envelop met een adres erop. In php doe je met die sessie start http headers beïnvloeden, dat zijn zeg maar de gegevens die op de envelop staan.