Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] aktywność użytkownika
mrk9109
post 16.08.2018, 11:22:41
Post #1





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Witam potrzebuje małej porady otóż mam zrobione ze po zalogowaniu użytkownika robi mi jego status na aktywny znów po wylogowaniu na odwrót no ale nie każdy używa wyloguj i właśnie stąd moje pytanie jak zrobić żeby po czasie tez zmieniał status ? Mam zrobione ostatnie logowanie wykorzystać to ? Czy ktoś ma może inny pomysł
Go to the top of the page
+Quote Post
markuz
post 16.08.2018, 12:48:01
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Utwórz w tabeli użytkownika pole - ostatnio_aktywny i jeżeli użytkownik wykona jakikolwiek ruch na stronie podbijaj datę - a status aktywny będzie otrzymywał jeżeli np. wykonał jakąś akcje w ciągu ostatnich 10 minut.


--------------------
Go to the top of the page
+Quote Post
Sawczuk
post 16.08.2018, 19:09:21
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 2
Dołączył: 13.01.2017

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


Witaj
Dodaj do bazy z użytkownikami pole 'aktywny' typu int(11).

Edit.
Przedmówca to mówił. smile.gif


  1. ALTER TABLE `tabela_z_userami` ADD `aktywny` INT(11) NOT NULL


Następnym krokiem będzie dodanie do pliku który jest załączany do wszystkich plików strefy użytkownika zalogowanego (i tylko zalogowanego) kodu który updatuje nam czas ostatniej aktywności na stronie czyli:

  1. <?php
  2.  
  3. $czas = time()+600; // aktualny czas + 10 minut (60sekund*10)
  4.  
  5. //tutaj update do bazy danych w zależności od bazy którą używasz np mysql-li:
  6.  
  7. mysqli_query($db , "UPDATE `users` SET aktywny='".$czas."' where id='".$user['id']."'");
  8.  
  9. ?>


A sprawdzasz czy jest aktywny :
  1. <?php
  2. if(time() <= $user['aktywny']) { // jeżeli czas aktualny jest mniejszy lub równy czasowi pobranemu z bazy to żytkownik jest aktywny
  3. //kod że jest aktywny
  4. }
  5. else{
  6. //kod że użytkonik nie jest aktywny
  7. }
  8. ?>


jest to najprostszy sposób.

Jak pomogłem nie zapomnij dać mi plusika wink.gif.

Ten post edytował Sawczuk 16.08.2018, 19:10:32
Go to the top of the page
+Quote Post
mrk9109
post 16.08.2018, 22:47:36
Post #4





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Podsumowując to co piszecie czyli jedyna opcja jest oprzeć to o czas dodatkowo . Aktualnie mam to zrobione tak że pole aktywność ma wartość 1 lub 0 dla tego że zlicza mi aktywnych graczy. Ale mam też pole ost.logowanie i tu bede musial to wykorzystac ze jezeli czas bedzie mniejszy to będzie robił update aktywnosci na 0 .

EDIT:

Gotowe dodalem czas i do kazdego pliku po zalogowaniu tongue.gif
Go to the top of the page
+Quote Post
viking
post 17.08.2018, 04:21:36
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


A wystarczyło jedno zapytanie https://dev.mysql.com/doc/refman/5.7/en/create-event.html


--------------------
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: 19.04.2024 - 11:48