Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySql]Wylogowanie w mysql
Pawolko
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.10.2009

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


Witam, szukałem odpowiedzi na mój problem i nie mogę znaleźć, choć wiem, że można to rozwiązać używając Time().

Chciałbym by po upływie sesji np 2 minutach wylogowało użytkownika nie tylko niszcząc sesje, ale także zmieniając wartość w mysql, tak aby efekt był widoczny też po stronie serwera, prosił bym o przykład, bo mniej/więcej wiem jak by to musiało działać, lecz mi nie wychodzi ;/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
golaod
post
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Każda akcja użytkownika niech zapisuje timestamp w bazie i ta sama akcja niech wywołuje przy okazji zapytanie typu 'usun wszystkich uzytkownikow o czasie wiekszym niz 2 minuty' (liczac za pomoca timestamp aktualny - timestamp zapisany.
Go to the top of the page
+Quote Post
Pawolko
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.10.2009

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


Tak jak pisałem wyżej, wiem że chodzi o ten time, ale mi nie wychodzi dlatego prosiłem o przykład, nie wiem czy wina jest po stronie skryptu, czy robię źle bazę.

Przypuśćmy że skrypt jest taki (znalazłem gdzieś na tej stronie w archiwum, nie pamiętam linka):

mysql_query("UPDATE users SET aktywnosc = ".time()." WHERE login = '{$login}'");
;p
ale nie wiem jak zrobić bazę bo ten timestamp w bazie nie zmienia czasu, czytałem, że robi to przy akcji, więc się w tym wszystkim pogubiłem smile.gif
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


UPDATE users SET aktywny=0 WHERE data_aktywnosci< time()-120


edit:// dzięki takiemu sposobowi będziesz miał aktywny=1 przy zalogowanych userach i 0 przy niezalogowanych, ale na moje oko taa kolumna jest nie potrzebna, bo po prostu możesz pobierać zalogowanych userów za pomocą
  1. SELECT * FROM users WHERE data_aktywnosci>now()-120

i niezalogowanych zmieniając znak > na =<

Ten post edytował peter13135 29.08.2011, 07:42:20


--------------------
:)
Go to the top of the page
+Quote Post
Pawolko
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.10.2009

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


Tak, i to zadziała z taką kolumną:, bo jak już pisałem czas się nie zmienia ;/
  1. ALTER TABLE `users` CHANGE `aktywnosc` `aktywnosc` TIMESTAMP NOT NULL
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


mj przykład dotyczył rzaczej kolumny typu integer tongue.gif


--------------------
:)
Go to the top of the page
+Quote Post
Pawolko
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 10.10.2009

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


Tak więc, zrobiłem Aktywnosc pod integer, oto moje nie dziłające wypociny:

sprawdza czy aktywny, ale chyba źle tablice zrobiłem?
  1. $login[] = mysql_query(" SELECT login FROM users WHERE aktywnosc>now()-120 ");
  2.  
  3.  
  4. if (!empty($login[$_SESSION['login']])){
  5.  
  6. $_SESSION["zalogowany"]=1;
  7. $_POST["login"] = $_SESSION['login']; }
  8. else {
  9. $_SESSION["zalogowany"]=0;
  10. }
  11.  


Przy zalogowaniu robi się takie coś:
  1. mysql_query("UPDATE users SET aktywnosc = ".time()." WHERE login = '{$login}'");


a tabela ustawia w aktywności "1314601930" i nic się nie zmienia

Może wyślij gotowy przykład php i mysql smile.gif
Go to the top of the page
+Quote Post
peter13135
post
Post #8





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


o gotowce możesz prosić w dziale giełda wink.gif

1. Znajdź sobie jakikolwiek kurs pobierania danych z bazy. Nie chce mi się tumaczyć Tobie dlaczego to jest źle, bo wszystko masz w necie.
2. Pobieranie wiele rekordów by potem sprawdzić jeden, jest nieoptymalne.
3. Przypisywanie wartości elementom tablicy $_POST nie jest najlepszą praktyką


--------------------
:)
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 Aktualny czas: 20.08.2025 - 13:22