Hey,

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.

Iemand die me uit de brand kan helpen?
landervn, waarom moet die perse een classe schrijven?

Afhaal Chinees, zet dit eens bovenaan je script:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
Dan krijg ik dit:

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);
?>
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.
Oh, dat wist ik niet, ik dacht dat het geen kwaad kon, maar het werkt nu, dus dan weet ik dat weer voor de volgende keer ;)

Heel erg bedankt!

Reageren