PDA

Bekijk Volledige Versie : [php] Sessions en lifetime



Piet Hein
22/01/03, 16:25
Als users een goede username & password ingevuld hebben worden deze
opgeslagen in een session:
<?php
session_start();
$_SESSION['userId'] = $userid;
$_SESSION['password'] = $password;
?>

Op volgende pagina's check ik in de database of deze geldig zijn anders
wordt de user uitgelogd.

Zijn bezoekers heel lang op één pagina (bijvoorbeeld om een formulier in te
vullen) en ze drukken op submit, dan worden ze uit de site geknald.

Ik weet niet zeker of het komt door de session.gc_maxlifetime = 1440 (24
minuten),
ik wil graag weten of het een oplossing is om dit te verhogen en of dit een
_goede_ oplossing is voor dit probleem.

Groet Piet Hein

Even de php.ini settings (widexs) php 4.3.0

session
Session Support enabled
Registered save handlers files user

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_dividend 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/spool/php /var/spool/php
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off

Daniel Tryba
22/01/03, 16:55
Piet Hein <piethein@phavorite.nl> wrote:
[php/sessions]
> Ik weet niet zeker of het komt door de session.gc_maxlifetime = 1440 (24
> minuten),
> ik wil graag weten of het een oplossing is om dit te verhogen en of dit een
> _goede_ oplossing is voor dit probleem.

IMHO is het een goede oplossing. De tijd kan in dit geval echter afentoe
langer zijn dan de maxlife aangezien de garbage collector at random
afgaat. Als je zeker wilt zijn van een bepaalde maximum lifetime zal je
zelf bv een timestamp in de sessie moeten opslaan en controleren of het
heden - de sessie timestamp groter is dan een bepaalde lifetime.

--

Daniel Tryba