Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MYSQL] Sessie wylogowywanie
Forum PHP.pl > Forum > Przedszkole
zaba12
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. ?>
Kuziu
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ć.
zaba12
a jak to zrobic ?
Kuziu
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.