Het registreren en uitlezen van een sessie binnen één pagina gaat prima, echter het uitlezen van de sessie op een andere pagina werkt niet.

pagina1.php

<?

session_start();
$_SESSION['vertreksessie'] = "blabla";

?>

pagina2.php

op pagina2.php probeer ik tevergeefs uit te lezen.

<?
session_start();
echo $_SESSION['vertreksessie'];
?>


Php info:
http://www.bussite.eu/php_info.php

Register Globals staat aan.

Iemand een idee?!
Je moet je tweede pagina dan natuurlijk ook beginnen met session_start(). Dat doe je op elke pagina waar je sessievariabelen wilt gebruiken.

ps.
Register Globals staat aan.
En dat zou ik als ik jou was zo snel mogelijk uitzetten. Dit brengt namelijk een gedegen veiligheidslek met zich mee als je niet zeeer nauwkeurig script...
En wanneer je de register globals uitzet, zet dan de magic quotes ook direct uit. Ook deze leveren meer problemen dan oplossingen op.
Eerste post aangepast.

Het toevoegen van session_start(); werkt niet! Andere ideeën?







Bovendien: is het mogelijk de registers globals + magic quotes uit te zetten van mijn hosting provider? Ik host het domein niet zelf.
Het toevoegen van session_start zou moeten werken. Zie ook deze pagina onder het kopje $_SESSION voor een voorbeeldje...

Verder kun je register_globals en magic_quotes_gpc uitzetten met een .htaccess in de root waarin de volgende regels staan:

php_flag magic_quotes_gpc off
php_flag register_globals off
Tip: Foutafhandeling. bovenstaande code ziet er goed uit, blijkbaar gaat er toch ergens iets fout. Zie deze fout boven water te krijgen. Foutmeldingen zijn essentieel.

In .htaccess kun je de instellingen aanpassen:
php_flag magic_quotes_gpc 0
php_flag short_open_tag 0
php_flag register_globals 0

Edit: php_flag is beter, voorbeeld aangepast.
Dan hoop ik dat je geen IIS gebaseerde host hebt anders kun je .htaccess vergeten.
Marco schreef op 03.01.2008 16:38
Bovendien: is het mogelijk de registers globals + magic quotes uit te zetten van mijn hosting provider? Ik host het domein niet zelf.
Dat moet je bij je hosting provider navragen.

Je zou het overigens ook nog kunnen proberen met ini_set() en via .htaccess.

Je zou je hoster ook nog dit leesvoer kunnen geven om te overtuigen om register_globals uit te laten zetten.
met error_reporting(E_ALL); krijg ik op !pagina 2! (uitlezen) de volgende foutmeldingen:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /homepages/8/d11570/htdocs/backloading/Regulier/test2.php:9) in /homepages/8/d11570/htdocs/backloading/Regulier/test2.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/8/d11570/htdocs/backloading/Regulier/test2.php:9) in /homepages/8/d11570/htdocs/backloading/Regulier/test2.php on line 13

Heeft iemand hier een oplossing voor?!

Ja, geen output naar de browser verzenden voordat je session_start() aanroept. Zet deze functie dus helemaal aan het begin van je script!

ps. Als je de tutorial die ik gaf iets verder doorgelezen had, was je op deze pagina onder het kopje 'headers already sent' de uitleg van dit probleem tegengekomen.
Geen output naar de browser voor session_start(). Plak anders die foutmelding in Google en schik je rot... ;)

Reageren