Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/MYSQL] Sessie wylogowywanie
zaba12
post 27.05.2006, 23:22:09
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 29.08.2003
Skąd: Gliwice

Ostrzeżenie: (10%)
X----


Witam ma problem nie wiem czy ten kod zadziala chodzi mi oto ze jak bede chcial wylaczyc przegladrke lub cos to odrazu bedzie mi zmienial wpis w bazie na offline

kod
  1. <?php
  2. $login = $_SESSION["login1"];
  3. function destroy_session($login) {
  4. global $login,$session_id;
  5.  
  6. $session_expire = time()+(60*24*30);
  7. if(!@$login) {
  8.  
  9. $login = $_SESSION["login1"];
  10. $q2 = "UPDATE uzytkownicy SET zalogowany='offline' WHERE login='$login'";
  11. $r2 = mysql_query($q2) or die(mysql_error());
  12. return true;
  13. }
  14. }
  15. destroy_session($login);
  16. session_set_save_handler ("destroy_session");
  17.  
  18. ?>
Go to the top of the page
+Quote Post
Kuziu
post 28.05.2006, 00:21:35
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Momentu zamknięcia przeglądarki nie wyczujesz.
Chyba że użyjesz JavaScript'owoego onUnload i odpalisz jakiegoś popup'a czy coś ale to nie jest dobre rozwiązanie.

Lepiej nastawić jakiś czas po jakim ktoś staje się offline i przy kazdej akcji jakiego kolwiek user'a wszystkich którzy mają przedawniony czas Online wywalać.

Ten post edytował Kuziu 28.05.2006, 00:21:50


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
zaba12
post 28.05.2006, 17:13:57
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 29.08.2003
Skąd: Gliwice

Ostrzeżenie: (10%)
X----


a jak to zrobic ?
Go to the top of the page
+Quote Post
Kuziu
post 28.05.2006, 17:31:20
Post #4





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


Stworzyc sobie table ID, UserID, LastActionTime

i jak ktos wykonuje akcje to

  1. DELETE FROM tabela WHERE LastActionTime > (aktualnyCzas + 300)


300 = 5min

+ Siebie samego nastawia na aktualny czas

  1. UPDATE tablea SET LastActionTime = aktualnyCzas WHERE UserID = mojeID


Oczywiscie chodzi mi o czas unixowy

I przed UPDATE trzeba sprawdzic czy wpis jest jak nie to dodac a jak jest to tak jak napisalem UPDATE

Ten post edytował Kuziu 28.05.2006, 17:33:47


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post

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: 16.06.2025 - 19:41