• 14 odgovora
  • 3.840 pregleda
Okidac na isticanje sesije 24.08.2011. u 07:56 · pre 184 meseci #1
Pozdrav svima
Evo ovako, potrebno mi je da na sajtu postavim sesiju da traje pet minuta. To nije problem to znam.
Ali mi je potrebno da posle 5 min kad sesija istekne da se strana refresuje.

E sad ja sam mislio da napravim sa java scriptom setTimeout -om da na svakih 5 minuta preko ajax funkcije proverim da li je sesija aktuelna da li ima vrednost i ako nema da se strana refresuje.

Da li je to ispravno ili ima neko bolje resenje?

Jos me interesuje, da li postoji mogucnost da ako korisnik nista ne radi na sajtu znaci ako je samo strana otvorena da posle tih 5 minuta se desi ovo? A ako pak korisnik radi nesto na sajtu da sesija se produzi, Nije mi bas jasno kako se to resava, video sam na dosta sajtova ovo da radi ok.

Potpis
djLapac
Re: Okidac na isticanje sesije 24.08.2011. u 12:42 · pre 184 meseci #3
Ako ti je potrebno samo da se stranica refreshuje svakih 5 minuta onda mozes da stavis HTML Meta refresh kod koji ce po isteku zadatakog vremenskog intervala
da osvjezi stranicu. Mislim da bi ovo cak trebalo da radi i ukoliko korisnik ima iskljucen JavaScript.

Evo primjer koda koji treba da ubacis u HEAD i koji radi refresh svakih 300 sekundi (5 minuta x 60 sekundi)
Code:
<meta http-equiv="refresh" content="300">


p.s. Ako korisnik radi nesto na stranici (klikne na link ili otvori novu) onda ce se stranica ponovo i ucitati i tajmer ce se vratiti na prvobitnih 300 sekundi.
Potpis
SasaKaranovic.com ~
YouTube ~
Twitter
Re: Okidac na isticanje sesije 24.08.2011. u 12:47 · pre 184 meseci #4
Problem sa takvim refresh sesije se javlja kad korinisk popunjava formu, ode do wc ili se javi na telefon (nema ga 6minuta), strana ce se refresatia on ce izgubiti sve podatke koje je uneo u formu.

Efikasnije resenje bi bilo da AJAX-om zoves refresh sesije (setInterval), u ovom slucaju sesija ce biti uvek aktivna.

p.s. Obrati paznju na header kad saljes request
Potpis
---------------------------------------------------------------------
Just do it.
Re: Okidac na isticanje sesije 24.08.2011. u 12:47 · pre 184 meseci #5
Ne, potrebno je da po isteku sesije se stranica refresuje.
E sad ne znam kako to moze drugacije da se odradi sem da stavim da sesija traje 5 min, pa da na svakih 5 min proverim da li sesija jos uvek vazi ili ne
Pa sam mislio da postoji neko resenje za to preko php-a
Potpis
djLapac
Re: Okidac na isticanje sesije 24.08.2011. u 12:54 · pre 184 meseci #7
Pa prilikom pretrage se neki rezultati cuvaju u sesiji. Pa se desi da korisnik ne radi nista na strani nekih 5 minuta pa mu istekne sesija i onda kad uradi klik na dugme na prikaz sledecih rezultata onda se sistem pogubi jer nema rezultata u sesiji.
Potpis
djLapac
Re: Okidac na isticanje sesije 24.08.2011. u 12:56 · pre 184 meseci #8
Citat:
b0ris: Problem sa takvim refresh sesije se javlja kad korinisk popunjava formu, ode do wc ili se javi na telefon (nema ga 6minuta), strana ce se refresatia on ce izgubiti sve podatke koje je uneo u formu.

Efikasnije resenje bi bilo da AJAX-om zoves refresh sesije (setInterval), u ovom slucaju sesija ce biti uvek aktivna.

p.s. Obrati paznju na header kad saljes request


Kako mislis da refresujem sesiju ako je istekla
Potpis
djLapac
Re: Okidac na isticanje sesije 24.08.2011. u 14:14 · pre 184 meseci #9
postavis na 4minuta i 50sekundi setInterval, u tom trenutku jos nista nije isteklo, ili bas ako hoces da budes geek postavis na 4 minuta i 16 sekundi (deljiv je broj sa 8 :D)

Sve u svemu nije toliko bitno koje je vreme postavljeno, dok god je ispod 5 minuta.
Tacan proces je da ajaxom zoves istu domenu na kojoj se nalazis i to ce refreshati sesiju na strani servera, sto tebi i treba (da ne istekne).

Primer ilustrira korinika koji je odsutan od kompa vise od 5 minuta (koliko sesija traje).

Mozda malo offtopic ali zasto postavljas sesiju da istekne posle 5 minuta :? default je 24minuta (opet deljivo sa 8 :D)
Potpis
---------------------------------------------------------------------
Just do it.
Re: Okidac na isticanje sesije 24.08.2011. u 14:33 · pre 184 meseci #11
Najbolje je za to da koristiš ajax. Prilikom kreiranja stranice pitaj server koliko mu traje sesija (session_cache_expire), smanji za minut-dva i posalji background request.

Ukoliko se radi o poverljivim podacima, postavi mu pitanje kroz neku float formu, ako potvrdi onda refresh, u protivnom gasis sesiju...
Potpis
Moj Veb Sajt HostCentar Blog
Aleksinac Južna Srbija TimeOut
Re: Okidac na isticanje sesije 24.08.2011. u 15:55 · pre 184 meseci #12
Mislim da ti pristup resavanju problema pogresan.
Treba da resis zasto ti se pobrkaju rezultati.
Ako nesto cuvas u sesiji i sesija istekne a korisnik klikne na next tek onda treba da mu odradis tu stranicu za refresh.
Npr. Yahoo zna da javi da je sesija istekla.
Zamisli sada ja sedim i gledam rezultate i citam i citam i odjednom se refreshuje stranica i sve mi nestane. Poludeo bih.
Moze da ti se desi da ti se unisti sesija i pre 5 minuta pa ako klikne na next onda ces imati isti problem.
Moze da ima dva ista otvorena prozora....

Ali ako vec hoces na tvoj nacin...
Tebi ako korisnik aktivno radi na sajtu to vreme se uvek produzava za 5 minuta. Ne?
Tako da je dovoljno da stavis meta refresh na 5 minuta i stranica ce da odradi refresh i nece biti sesije.
Ne vidim sta ce ti biti onda problem?
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Re: Okidac na isticanje sesije 24.08.2011. u 17:28 · pre 184 meseci #13
A zasto ne hidden iframe sa meta refreshom?
Re: Okidac na isticanje sesije 25.08.2011. u 10:58 · pre 184 meseci #14
Citat:
dusans: A zasto ne hidden iframe sa meta refreshom?

Kako, sta?
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Re: Okidac na isticanje sesije 25.08.2011. u 12:16 · pre 184 meseci #15
VladaSU ti je dao najbolji savet. Umesto da prikrivaš problem - reši ga. Aplikacija sama po sebi treba da ima rešenje za sitaciju kada je sesija istekla - da obavesti korisnika o tome i da ga uputi da sve podatke upiše od početka. Za to ti opšte ne treba ajax.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme