Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Wykonanie skryptu przy zamknięciu przeglądarki
Hannon
post 24.12.2007, 15:12:49
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.02.2005

Ostrzeżenie: (0%)
-----


Przy zamknięciu przeglądarki zamykana jest sesja - ok.
Chciałem zapisać pare informacji przy zamknięciu przeglądarki.
Ale ni cholery niewiem jak to zrobić.
Przemknęło mi przez myśl postawienie crona który będzie odpalał skrypt który będzie sprawdzał czy sesja jest zamknięta a jeśli tak to sru zapis ale to sie mija z celem bo godziny nie będą prawidłowe a zmienne juz nie będą istnieć..
Brakuje mi jakiegoś spustu który wykona to.
Zastanawiałem się nad wykorzystaniem javascriptu onClose="x"
ale to chyba też nie zadziała bo jak to wrzuce to przecież nie wykona mi skryptu bo to po stronie przeglądarki a nie serwera.

Ma ktoś jakieś pomysły ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
k0b3
post 21.08.2008, 11:19:17
Post #2





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Z użytkownikami zalogowanymi nie mam problemu.
Robie CMSa gdzie statystki pokazują aktywnych użytkowników. Oprócz tych zalogowanych są również goście.
mam dwie bazy między którymi zawiązane są interakcje: users oraz session.

w sessions jak juz wspomaniałem w poprzednim poście mam dwie kolumny:
session_id oraz user_id (domyślnie:-1)
-1 odpowiada użytkownikom anonimowym (niezalogowanym), czyli goście.
gdy ktoś się loguje następuje UPDATE bazy session i zmienia się to -1 w odpowiedniej sesji na id użytkownika pobrane z bazy users.

Liczba gości pobierana jest za pomocą num_rows:
  1. <?php
  2. $sql= @mysql_query("SELECT * FROM session WHERE session_user_id='-1'");
  3. $num_rows = mysql_num_rows($sql);
  4. ?>

wracając troche: Gdy ktoś wchodzi na stronę tworzy się nowa sesja. Przy zamknięciu i ponownym uruchomieniu strony znowu się tworzy nowa sesja, przez co te -1 w sesji gromadzą się i liczba gości ciągle rośnie.

Teraz wracając do Twojego pytania.
NIe musi to być w AJAXIE (nie przepadam za tym utrudnianiem sobie życia), ale porblem polega na tym, żeby sprawdzić czy dana sesja się zakończyła, czy ktoś zamkną tą przeglądarkę itp. Poprostu jakoś to sprawdzić. Wtedy usuwam sobie rekord w tabeli session pod względem nieaktywnego id sesji.

Mam nadzieje ze jasno wyjaśniłem ;P

dodam jeszcze, że ciastko sessji jest tez ustawione na określony czas.
  1. <?php
  2. ?>

Gdy się zakończy i usunie, sesje w bazie zostaje i to -1(gość) również.

Ten post edytował kobemat 21.08.2008, 11:26:03
Go to the top of the page
+Quote Post

Posty w temacie
- Hannon   [php]Wykonanie skryptu przy zamknięciu przeglądarki   24.12.2007, 15:12:49
- - webdicepl   Mi do głowy przychodzi na razie jeden nie zbyt ele...   24.12.2007, 15:27:47
- - sniezny_wilk   A jakie informacje chcesz przekazać ? Może da się ...   24.12.2007, 15:50:40
- - webdicepl   Był kiedyś o tym temat na forum, nie ma dobrego sp...   24.12.2007, 16:00:17
- - Boski   można robić backupa sesji co x sekund lub przy odś...   24.12.2007, 16:02:41
- - Hannon   Dopisanie do pliku txt że dany użytkownik o danym ...   24.12.2007, 16:03:57
- - calfik   no moze a ktos mogl by mi  podpowiedziec jak przy ...   25.12.2007, 01:49:50
- - .chudy.   Może zrób mniej więcej tak. Przy logowaniu się use...   25.12.2007, 10:40:13
- - calfik   a jakies informacje co w tym ajaxie trzeba napisac...   25.12.2007, 21:01:00
- - czachor   Może coś z tym? Obsługa połączeń i connection_abor...   25.12.2007, 21:18:07
- - Hannon   No... ale wyjście ze strony != logout. Wyjści...   25.12.2007, 23:48:07
|- - Babcia@Stefa   Cytat(Hannon @ 25.12.2007, 23:48:07 )...   30.12.2007, 14:44:56
- - calfik   Hannon a mogl bys powiedziec jak to zrobiles bo ma...   30.12.2007, 14:36:42
- - kobemat   ten ajax za pomocą jQuery dało by się zrobić? Kil...   21.08.2008, 00:00:56
- - bim2   No wywołaj to tak samo jak ajax w jquery ;p onunl...   21.08.2008, 00:39:01
- - krowal   @Babcia@Stefa Twoje rozwiązanie jest ok, ale... ss...   21.08.2008, 07:18:08
- - LBO   JA bym się najpierw zastanowił, czy nie ...   21.08.2008, 09:33:24
|- - kobemat   Cytat(LBO @ 21.08.2008, 09:33:24 ) U...   21.08.2008, 10:39:54
- - LBO   Nie wiesz tego i się nie dowiesz... niestety.   21.08.2008, 10:49:24
- - kobemat   no to moze odwrotnie. Czy da sie sprawdzić a...   21.08.2008, 11:01:47
- - LBO   Naprawdę chcesz polegać na AJAXie? Napisz co dokł...   21.08.2008, 11:07:16
- - franki01   Ja bym zastanawiał się na trochę in...   21.08.2008, 11:08:46
- - kobemat   Z użytkownikami zalogowanymi nie mam problemu...   21.08.2008, 11:19:17
- - franki01   Chyba nie do końca zrozumiałeś założenia mojego sk...   21.08.2008, 11:28:59
- - LBO   A ja napisałem, że np Firefox może trzymać sesję w...   21.08.2008, 11:33:16
- - kobemat   Cytat(LBO @ 21.08.2008, 11:33:16 ) cz...   21.08.2008, 11:48:08
- - LBO   Tak, możesz jedynie szacować ten czas. U...   21.08.2008, 11:55:43
- - kemot   Z tego co zrozumiałem chcesz zapisać czas kiedy da...   21.08.2008, 21:39:38
- - LBO   @kemot, źle zrozumiałeś - to to jest banał. Chodzi...   21.08.2008, 21:44:08
- - franki01   Nie w momencie, kiedy się wylogował, lecz kiedy za...   21.08.2008, 21:50:11
- - kobemat   @lbo lub @franki01 skrobnijcie jakiś kod dotyczacy...   22.08.2008, 01:33:38


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 17:14