Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Session destroy i update tabele posle zatvaranja browsera

[es] :: PHP :: Session destroy i update tabele posle zatvaranja browsera

[ Pregleda: 2610 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Session destroy i update tabele posle zatvaranja browsera04.06.2014. u 11:13 - pre 120 meseci
Pozdrav ljudi, naisao sam na problem, kao sto tema kaze, da kada se korisnik ne izloguje vec samo zatvori browser se unusti sesija, ali to i nije toliki problem koliko je sto moram da uradim update tabele, i da upisem vreme kada se to desilo. Naime, moram imati upisano vreme zavrsetka rada u aplikaciji, jer se ne moze ulogovati posle toga ako nije upisano vreme. Takav zahtev od klijenta imam. Postoji li nacin da se ovo uradi? Sesiju mogu podesiti da istekne, to nije problem, ali sta da radim sa update-om?
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera04.06.2014. u 11:26 - pre 120 meseci
session_destroy() je preporučljivo pozivati pre - header('Location:'.$_SERVER['REQUEST_URI']); exit; dakle, pre redirekcije ili refresh-a stranice, kako bi se npr. browser cookie učitao i reflektovao - instant. To je jedan od dobrih scenarija gde funkcija session_destroy() ima svoju ulogu tako što će dopustiti narednom posetiocu koji je tu - odmah nakon pola sekunde npr. da takođe, neometano upiše sebe ili podatke koji su vezani za tog korisnika. Jer, onda kada se 'akaju' sesije, taj jedan sess_sdf98as89g68a ** fajl je zaključan dok se skripta ne izvrši do kraja. Takoreći Locked. session_destroy() završava sa upisom i vezom i sa aktivnim korisnikom, te je samim tim baratanje podataka kroz sesije, precizniji.

Za tačan upis vremena, možeš slobodno koristiti i običnu microtime(true);
Hoćeš li vrednost koju dobijaš sa microtime(true) ubaciti u novi cookie, pa njega maknuti nakon upisa u bazu ili direktno u sesiju, zavisi od same aplikacije, od tebe takoreći.

U suštini mnogo prosto, samo fino obrati pažnju šta gde i kako i kada ćeš, ako ćeš da radiš sa sesijama, koristiti if(!isset($_SESSION['thisAndThat'])) $_SESSION['thisAndThat'] = 'that and that'; *(znači da se taj ključ u sesiji pravi samo jednom ako nije već napravljen) a kada ćeš koristiti unset, tu i tu sesiju.. ili ćeš je generisati iznova, uvek, na svakom requestu.

Zanimljive su te sesije. :)
about:networking
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera04.06.2014. u 11:37 - pre 120 meseci
Jedna mala ispravka.. nisam ni gledao šta sam kucao..

Ne session_destroy() - TO ne moraš da pozivaš gotovo nikada. Samo pusti da se sesija sama, po php.ini direktivi (timeout-u) ubije. Onda kada treba, onako kako je podešeno. Najbolje.

Nije session_destroy() već - session_write_close();

Dakle, sve što sam ispisao - true.

Samo zameni destroy() sa write_close()

Moja brzopleta malenkost, ne zameri.

:)

To je zapravo funkcija koja ti treba.
about:networking
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
95.180.71.*



+257 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera04.06.2014. u 16:24 - pre 120 meseci
Nisam shvatio kako će to tvoje raditi u slučaju koji je naveo, tj.
Citat:
kada se korisnik ne izloguje vec samo zatvori browser
?
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera04.06.2014. u 23:07 - pre 120 meseci
To bi valjda trebalo da može sa - connection_aborted()
A postoji i connection_status()

Mora da prošparta po priručniku malo. Pa da iskombinuje. Ne gine mu to.
about:networking
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
188.124.193.*



+18 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera05.06.2014. u 07:54 - pre 120 meseci
Ne znam jel radi, ali mozda mozes probati sa window.unload ili http://api.jquery.com/unload/ . Dakle, taj dogadjaj da pokrene AJAX sa kojim upises u bazu kad je zatvorio stranicu / uradio "refresh". Kad se ponovo ucita stranica upise u bazu da je logovan ili obrise prethodni red. Mozes to voditi na principu nekog dnevnika pa onda za statistiku odgovarajuce SQL upite pokretati...
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera05.06.2014. u 08:40 - pre 120 meseci
Ne treba mu .js za ovakve slučajeve uopšte. Šta kad dođe neki ćaknuti kao ja, sa isključenom javaskriptom, provere radi? Šta se onda dešava? :)
about:networking
 
Odgovor na temu

Targarijen

Član broj: 323545
Poruke: 2
*.dynamic.isp.telekom.rs.



Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera05.06.2014. u 23:38 - pre 120 meseci
Bojim se da se ovo ne može rešiti bez JS jer je HTTP protokol bez pamćenja stanja (stateless) ! Mislim da rešenju koje je predložio vatri nedostaje samo funkcija keepAlive() u kombinaciji sa vremenski ograničenim sesijama.

Citat:
To bi valjda trebalo da može sa - connection_aborted()
A postoji i connection_status()


Ovo nema veze sa postavljenim pitanjem jer se odnosi na zahtev koji server trenutno obrađuje i korisno je samo u slučaju dugih obrada. U tom slučaju server može da proveri da li je klijent u međuvremenu otkazao zahtev.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera06.06.2014. u 03:08 - pre 120 meseci
Jel' nema veze sa postavljenim pitanjem? A s' čim ima veze?
about:networking
 
Odgovor na temu

Targarijen

Član broj: 323545
Poruke: 2
*.dynamic.isp.telekom.rs.



Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera06.06.2014. u 07:25 - pre 120 meseci
^To je odgovor na pitanje:

Kako da proverim da li je veza sa klijentom čiji se zahtev trenutno obrađuje i dalje aktivna?

Ako sam ja dobro razumeo Rodja_ki želi da postigne nešto sasvim drugo.

@Rodja_ki, možda možeš da razmotriš i korišćenje WebSocketa i uspostavljanje dvosmerne veze sa serverom, mada je to dodatna komplikacija. Pogledaj ovu biblioteku http://socketo.me/

[Ovu poruku je menjao Targarijen dana 06.06.2014. u 08:36 GMT+1]
 
Odgovor na temu

Rodja_ki
Kikinda

Član broj: 297407
Poruke: 63
*.dynamic.sbb.rs.



+4 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera06.06.2014. u 09:10 - pre 120 meseci
Hvala vam na odgovorima, bio sam zauzet drugim problemima, u sustini, sa ajaxom sam pokusao, i nisam uspeo. Pokusacu sa vasim predlozima, proguglacu jos, pa cu probati nesto da uradim (da ne kazem izmajmunisem :) ).
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
87.250.105.*



+27 Profil

icon Re: Session destroy i update tabele posle zatvaranja browsera09.06.2014. u 08:27 - pre 119 meseci
Vodiš sam računa o trajanju sesije, nemoj da to za tebe radi web server i onda ćeš da znaš kada je sesija invalidirana jer ćeš ti to da uradiš:
http://www.php.net//manual/en/session.customhandler.php

EDIT:
Mislim da ne moraš da implementuješ svu logiku nanovo, ima ova klasa, samo je extenduj i dodaj svoj dio koji loguje invalidaciju sesije:
http://www.php.net//manual/en/sessionhandler.open.php
 
Odgovor na temu

[es] :: PHP :: Session destroy i update tabele posle zatvaranja browsera

[ Pregleda: 2610 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.