vreemd gedrag server bij session

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harry nvt

Harry nvt

09/08/2009 05:03:00
Quote Anchor link
Ik heb de volgende session header in een reeks session files staan. Het gaat om een formulier verdeeld over verschillende pagina's, waarbij de waardes in $_SESSION vars worden bewaard.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// gc 3 uur
ini_set('session.gc_maxlifetime', '10800');

$sessdir = ini_get('session.save_path').'/'."p3d";
if (!is_dir($sessdir)) { mkdir($sessdir, 0777); }
ini_set('session.save_path', $sessdir);
// cookie 24 uur
session_set_cookie_params('86400', '/inschrijven');
session_start();
[
/code]
Dit werkt allemaal prima op de externe server (php 4.4.9). Op mijn locale server (php 4.4.7 binnen Apache op Mac OS) tot een bepaald moment. Want op een gegeven moment werden op de locale server de $_SESSION vars niet meer bewaard.
Ik dacht aan een soort overflow van de session save path, maar wegschrijven naar de default /tmp werkte ook niet meer. En experimenteren met de gc probability werkte ook allemaal niet.
Totdat ik na zoals gebruikelijk lange tijd op het idee kwam een sessie te draaien zonder extra paramaters, dus gewoon
alleen
session_start();
en toen werkte alles weer... ook de sessie met de extra parameters zoals hierboven aangeduid.

Mooi natuurlijk, maar wat gaat mijn externe server waar het spul moet gaan draaien binnenkort, doen? Als die hetzelfde gaat vertonen zit ik mooi...

Mijn eerste vraag is of die code hierboven in orde is. Volgens mij wel.
Verder ben ik benieuwd naar ervaringen van anderen op dit gebied. Is het aanmaken van een aparte directory binnen /tmp verstandig? Mijn gevoel zegt dat het daar mee te maken heeft. En wat hebben jullie zoal meegemaakt op dit zowieso wat groezelige terrein van sessies... en zal PHP 5 zich beter gedragen in deze...

met prettige vakantiegroet
 
PHP hulp

PHP hulp

24/04/2024 18:58:45
 
Harry nvt

Harry nvt

29/09/2009 01:39:00
Quote Anchor link
Opgelost. Bovenstaande code is ok, maar de fout zat in het cookiepath die lokaal niet klopte. Als je lokaal werkt kan de document_root anders zijn. Bijv:
http://jouwcomputer/~jouwnaam/jouwsite/
Werk je op een externe server is het dan:
http://www.jouwsite
ga je een cookiepath zettten, (bijv. /inschrijven) werkt ie op de externe server wel, (www.jouwsite/inschrijven) maar ga je lokaal de mist in doordat ie
http://jouwcomputer/inschrijven als cookiepath zet, wat een niet bestaand en dus niet werkend pad is. Immers /~jouwnaam/ had er nog tussen gemoeten.

En als je geen sessiecookie kan zetten werkt ook de sessie niet...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.