Kom ihåg mig?
Home Menu

Menu


Problem med sessioner

Ämnesverktyg Visningsalternativ
Oläst 2011-09-19, 10:14 #1
cyrres avatar
cyrre cyrre är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 178
cyrre cyrre är inte uppkopplad
Medlem
cyrres avatar
 
Reg.datum: Feb 2006
Inlägg: 178
Standard Problem med sessioner

Hej, jag har lite problem med en sida som loggar ut användare lite slumpmässigt pga sessionen dör. Ibland kan sessionen hålla i 4 h och ibland i 30 min. Jag har testat höja så gott som alla värden för timeouts etc. Hittar inget speciellt i loggarna för apache/php.

Är det någon som har någon aning vad som kan vara fel eller vart jag kan börja leta?

Info från php:

session.auto_start Off Off

session.bug_compat_42 Off Off

session.bug_compat_warn Off Off

session.cache_expire 10800 1440

session.cache_limiter nocache nocache

session.cookie_domain no value no value

session.cookie_httponly Off Off

session.cookie_lifetime 10800 10800

session.cookie_path / /

session.cookie_secure Off Off

session.entropy_file no value no value

session.entropy_length 0 0

session.gc_divisor 1000 1000

session.gc_maxlifetime 10800 10800

session.gc_probability 0 0

session.hash_bits_per_character 5 5

session.hash_function 0 0

session.name PHPSESSID PHPSESSID

session.referer_check no value no value

session.save_handler files files

session.save_path /var/lib/php5 /var/lib/php5

session.serialize_handler php php

session.use_cookies On On

session.use_only_cookies On On

session.use_trans_sid 0 0
cyrre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-19, 11:09 #2
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
"session.save_handler files files" visar att sessionsdatan ligger på disk.
En del Linuxdistributioner har schemalagda jobb som rensar under /tmp med jämna mellanrum, kanske är detta en anledning.

edit: fast jag ser att du har "session.save_path /var/lib/php5 /var/lib/php5"

ytterligare edit: Du har värdet 10800 på flera ställen.. detta är tre timmar.

Senast redigerad av Jake.Nu den 2011-09-19 klockan 11:14
Jake.Nu är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-19, 21:40 #3
cyrres avatar
cyrre cyrre är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 178
cyrre cyrre är inte uppkopplad
Medlem
cyrres avatar
 
Reg.datum: Feb 2006
Inlägg: 178
Ja det stämmer att sessionerna sparas i /var/lib/php5/

Om sessionerna alltid hade varit minst 3h hade jag varit nöjd :-) Problemet är att de kan dö ut efter 20 min. Vi kör ubuntu på servern som kör en cleanup (var 30:e minut) i /var/lib/php5/ efter sessioner som är gamla nog att klassas som garbage. Sessionerna ska däremot inte klassas som garbage när de är tre timmar eller yngre.

Blir tokig på detta...
cyrre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-19, 21:58 #4
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Dör sessionen mitt under bläddrandet på sidan eller är det när man lämnar den en stund?
Är det likadant oavsett webbläsare?
Kör du enbart http eller blandar du med https?
Vilka session_xxx() -funktioner använder ni?
Vilken typ av data sparar ni i en session?
Hur mycket data sparar ni i en session?

Senast redigerad av Jake.Nu den 2011-09-19 klockan 22:03
Jake.Nu är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-19, 23:50 #5
cyrres avatar
cyrre cyrre är inte uppkopplad
Medlem
 
Reg.datum: Feb 2006
Inlägg: 178
cyrre cyrre är inte uppkopplad
Medlem
cyrres avatar
 
Reg.datum: Feb 2006
Inlägg: 178
Den dör vid såväl inaktivitet som vid bläddrande.

Det är endast testat i firefox, olika versioner av firefox däremot.

Sidan kör bara http.

Vi använder session_start, session_id, session_destroy.

Vi lagrar ett objekt som gör att vi kan hämta data ungefär såhär hämtas via $_SESSION['user']->GetFirstName(). Totalt är det väl runt 10 st olika värden som finns tillgängliga, inge stora datamängder alltså.

Tack för ditt engagemang!
cyrre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-20, 00:23 #6
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Inte säker på om detta är problemet men byt master value på session.cache_expire till 10800 så att det ser ut såhär:

session.cache_expire 10800 10800

För just nu är master value inställt på 24 minuter.
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-09-20, 08:12 #7
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Något i serialiseringen av objektet kanske ställer till det.

Jag hade ordnat en funktion för att hålla koll på vilket session_id man har när det strular och sedan tittat i tillhörande sessionfil efter konstigheter. Jag hade också kopierat det serialiserade objektet från sessionsfilen in i ett script för att se om det kan återskapas ordentligt.
PHP-kod:
var_dump(unserialize('serialiserad_data_fran_sessionsfilen')); 
Framförallt så hade jag slutat lagra objekt i sessionen utan istället lagrat ett nyckelvärde och sedan laddat data från annan plats.
Jag har bara dåliga erfarenheter av att lagra objekt eller "stora" mängder data i en session.. Precis som för dig så har det fungerat lite sporadiskt vad jag vill minnas.. Det är iofs många år sedan nu.
Jake.Nu är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017