![]() |
![]() |
![]()
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 ? -------------------- ![]() ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Mi do głowy przychodzi na razie jeden nie zbyt elegancki pomysł. Po zamknięciu przeglądarki wyskakuje POP-UP otwierający plik PHP który usuwa sesję, a następnie sie sam zamyka. Nie wiem tylko jak jest z sesjami w POP-UP'ach.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 732 Pomógł: 80 Dołączył: 25.05.2005 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
A jakie informacje chcesz przekazać ? Może da się to jakoś obejść
@webdicepl - z tego co wiem pop-up będzie miał taki sam dostęp do sesji jak i strona z jakiej jest wywoływany. Ale co w przypadku, gdy user po prostu wyłączy komputer nie zamykając przeglądarki ? Czy to są jakieś ważne dane ? -------------------- DevBlog - http://www.bartekrogus.pl
|
|
|
![]()
Post
#4
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Był kiedyś o tym temat na forum, nie ma dobrego sposobu na zrobienie czegoś takiego.
@webdicepl - z tego co wiem pop-up będzie miał taki sam dostęp do sesji jak i strona z jakiej jest wywoływany. Nie korzystam z POP-UP'ów, ale z tego co pamiętam w IE6 miał chyba inną sesje. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 1 Dołączył: 22.12.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
można robić backupa sesji co x sekund lub przy odświeżeniu strony a najlepiej żeby w sesji nie trzymać ważnych informacji
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dopisanie do pliku txt że dany użytkownik o danym ip zamknął przeglądarkę o danej godzinie nie wylogowując się.
Inwigilacja administracji rox. Czyli nikt niema jakiegoś pomysłu ? -------------------- ![]() ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
no moze a ktos mogl by mi podpowiedziec jak przy zamykaniu przegladarki dokonac zmiany w zmiennych i wyslac te zmienne na server
![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 70 Pomógł: 3 Dołączył: 15.06.2003 Skąd: kosmosu? Ostrzeżenie: (0%) ![]() ![]() |
Może zrób mniej więcej tak. Przy logowaniu się usera wprowadz do bazy date logowania (oczywiście z czasem
![]() -------------------- Warsztat#1 ::drum and bass:: Apache2.2 :: PHP 5.2 ::
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
a jakies informacje co w tym ajaxie trzeba napisac i jak to napisac jakies przyklady bo juz nie jedna osoba mi mowila ze tak ale ja nie mam zielonego pojecia
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 897 Pomógł: 40 Dołączył: 16.12.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Może coś z tym? Obsługa połączeń i connection_aborted().
-------------------- how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
No... ale wyjście ze strony != logout.
Wyjście ze strony to zamknięcie okna z stroną. Wylogowanie to zakończenie sesji. Z zakończeniem sesji moge sobie poradzić, ale jak wykonać skrypt przy zamykaniu/po zamknięciu. -------------------- ![]() ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 25.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hannon a mogl bys powiedziec jak to zrobiles bo mam problem z tym zeby to wymyslec jak to zrobic przykladowy jakis kod mogl bys mi podac albo na maila calfik@gmail.com
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
No... ale wyjście ze strony != logout. Wyjście ze strony to zamknięcie okna z stroną. Wylogowanie to zakończenie sesji. Z zakończeniem sesji moge sobie poradzić, ale jak wykonać skrypt przy zamykaniu/po zamknięciu. To proste. Wystarczy wykorzystać Ajax.
W kodzie html:
Sesje.php Kod <?php include('controller.php'); $session = new SESSION(); $session -> destroyall(); ?> @edit Źródło ajax: http://webmade.org/porady/ajax.php Dziękuję, Babcia@Stefa Ten post edytował Babcia@Stefa 30.12.2007, 14:45:21 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 138 Pomógł: 0 Dołączył: 1.08.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
ten ajax za pomocą jQuery dało by się zrobić?
Kilka funkcji użyłem i szkoda gdybym pisał ten powyższy skrypt jak mam takiego frameworka. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
No wywołaj to tak samo jak ajax w jquery ;p
onunload="$('#div').load('session.php');" czy jak tam to robisz -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Babcia@Stefa
Twoje rozwiązanie jest ok, ale... ssie ![]() Ja bym to zrobił w taki sposób, że wysyłałbym ajaxem np. co 5 min informację z sessionid o aktywności użytkownika i jeśli sesja nie wygasła to zapisywałbym czas ostatniej aktywności. Jeśli użytkownik wylogowałby się poprawnie to ustawiłbym w bazie przy jego sesji jakiś znacznik informujący o poprawnym wylogowaniu np. logged_out = 1 (domyślnie ustawiane na 0). Później jakiś administrator wchodząc na stronę otrzymywałby info o wszystkich użytkownikach dla których logged_out == 0 i czas ostatniej aktywności był wcześniejszy niż NOW() - 5min W ten sposób możesz określić czas wyjścia bez wylogowania z dokładnością do 5 min. Edit: @chudy, nie zauważyłem, że mniej więcej to samo już napisałeś ![]() Ten post edytował krowal 21.08.2008, 07:25:05 -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
JA bym się najpierw zastanowił, czy nie można tego obejść. Język PHP nie ma dostępu do przeglądarki przecież i wszelkie próby emulowania tego, czy to przez pop-upy, czy AJAX są zawodne (czyt. nie można na nich polegać).
Podsumowując - nigdy nie będziesz pewny, że użytkownik zamknął przeglądarkę. I zamiast siedzieć nad obejściem tego, pomyśl nad innym rozwiązaniem. edit: zastanawia mnie co to za informacje chcesz zapisywać, przy zamknięciu? Bo tak czy siak, te informacje są na pewno dostępne przy każdym requeście, prawda? Użytkownik wchodzi na stronę zapisujesz te dane w bazie i w sesji, przy każdym następnym requeście sprawdzasz różnice - jeżeli takie istnieją dopisujesz/nadpisujesz je do bazy. Rozwiązane. Ten post edytował LBO 21.08.2008, 09:38:27 |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 138 Pomógł: 0 Dołączył: 1.08.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Użytkownik wchodzi na stronę zapisujesz te dane w bazie i w sesji, przy każdym następnym requeście sprawdzasz różnice - jeżeli takie istnieją dopisujesz/nadpisujesz je do bazy. Rozwiązane. jak za pomocą php sprawdzić czy dana sesja zostałą zakończona? Jak rozumiem, zakończenie danej sesji jest przy zamknięciu przeglądarki. informacje o sesji przetrzymuje w bazie sql: session_id() oraz id użytkownika. Gdy jest -1 to znaczy ze jest to gość, gdy przybiera numery od 1 oznacza ze ktos z id1 jest zalogowany. da sie to jakoś wykorzystać? Ten post edytował kobemat 21.08.2008, 10:42:41 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiesz tego i się nie dowiesz... niestety.
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 138 Pomógł: 0 Dołączył: 1.08.2006 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
no to moze odwrotnie.
Czy da sie sprawdzić aktywność danej sesji? taki ping do użytkownika ;P jeśli nie ma odpowiedzi coś tam się robi. BTW, skrobnijcie kodem na to poniższe rozwiązanie.. Ajaxem da sie sprawdzić aktywnośc użytkownika wg session_id i czy ta sesja nie wygasła? Ja bym to zrobił w taki sposób, że wysyłałbym ajaxem np. co 5 min informację z sessionid o aktywności użytkownika i jeśli sesja nie wygasła to zapisywałbym czas ostatniej aktywności.
Ten post edytował kobemat 21.08.2008, 11:02:41 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:55 |