ugrás a tartalomhoz

PHP session kezelés AJAX-ban

lohner · 2006. Már. 20. (H), 23.46
Sziasztok!
Már készítenem egy-két kódot az AJAX elvek felhasználásával, de egy dolgot a mai napig nem sikerült korrekten megoldani, ez pedig a session kezelés.
Lejárt session esetén az aszinkron hívás ugye elakad, tehát ezt az esetet külön le kell kezelni. Azt már elértem, hogy ilyenkor visszadob a bejelentkező oldalra, azonban az ajax alkalmazásba beírogatott adatok a bejelentkezés után elvesznek.
Van alakinek valami jó megoldása erre?
 
1

Cache

janoszen · 2006. Már. 21. (K), 11.36
Hát, helyből két megoldást tudok elképzelni. Az egyik az, hogy az AJAX hívásra egy hibát dobsz vissza neki, és azt meg is jeleníti egy bejelentkezőmező kiséretében. Mondjuk, az egész HTML oldalt lefeded egy félig áttetsző div-vel és a tetejére kiraksz egy bejelentkező ablakot.

A másik: Miután a PHP új sessiont dobott neki, a sessionban újra el tudod tárolni az adatokat - úgymond cache-elni, amit beadott és sikeres bejelenetkezés után feldolgozod. Ehhez a bejelenetkező résznek tartalmaznia kell egy cached commands-okat feldolgozó részt. Hogy hogyan valósítod meg, az már a rendszered kialakításától függ.

Esetleg a kettőt ötvözheted is. Mindenesetre ajánlom, hogy gondolkozz abban is, hogy az emberek durván 5-10%-ának (beleértve a keresőket is) nincs javascript támogatása, tehát számolnod kell azzal, hogy valaki hagyományos módon szeretné a formokat és linkeket használni.
2

session lejárat

Anonymous · 2006. Már. 22. (Sze), 09.31
Mindkét megoldás jó ötlet, bár belegondolva egyiket sem egyszerű a jelenlegi rendszerre ráhúzni. Valsz a második lesz.

Javascripttel, nincs probléma, mert belső portál előírt böngészővel.

A legjobb az lenne, ha az egész session lejárati dolgot ki tudnám iktatni, mert semmi szükségem rá. A php.ini-ben állítgattam az időket, de semmit nem reagált rá. Lehet ezt esetleg közvetlenül a kódból is módosítani?
3

ha belső portál...

janoszen · 2006. Már. 22. (Sze), 10.58
Ha belső portál, akkor miért nem azonosítasz IP cím alapján és írod elő, hogy 1 perc inaktivitás után kapcsoljon be a képernyővédő jelszóval? KISS. Keep It Simple Stupid. :)
4

ip azonosítás

lohner · 2006. Már. 22. (Sze), 18.30
Nem tudom mennyire kapcsolódik ez a session-ok témaköréhez. Egyébként ip alapú azonosításnál elég vicces megoldani egy ilyen szintű jogosultsági rendszert is (struktúrált valós és virtuális csoportok, tagság, csoport és felhesználói jogosultságok). Az igazi megoldás az session lejárati idejének kikapcsolása lenne, mert itt tényleg semmi szükség rá. Ehhez keresek valami kódolással megvalósítható negoldást. (Ne a php.ini-t kelljen mindenhol áttállitani)