vreemd gedrag server bij session
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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
// 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
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...