![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 11 Dołączył: 8.11.2008 Skąd: Sieradz Ostrzeżenie: (10%) ![]() ![]() |
Witam wszystkich.
Chciałbym się dowiedzieć czy istnieje możliwość sprawdzania czy sesja jest aktywna. Mam logowanie oparte na sesjach i w bazie danych komórke `active` w której jest zapisywane czy użytkownik jest zalogowany. Podczas logowania wpisuje tam 1 a podczas wylogowania wpisywane jest 0. Ale gdy użytkownik zamknie strone to nadal tam jest wpisane 1 i to mi psuje wygląd statystyk, ponieważ nikt nie jest zalogowany a ciągle pokazuje że ktoś jest zalogowany. Można to w jakiś sposób sprawdzać czy użytkownik aktualnie jest zalogowany czy nie? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 9 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy jest taka mozliwość,
Ja bym dał na początku strony zapytanie czy activ byl aktywny przez ostatnie np 3 min jesli tak to zostawia 1 a jesli nie to zapisuje 0, A jesli sesja istenieje to aktualizuje activ i zapisuje czas w ktorym ostatnio uzytkownik "odswiezyl" strone, Wiadomo o co mi chodziło?? Ja zaczynam się uczyć php ale ja tak widzę to rozwiązanie. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj pod hasłem "własny mechanizm sesji", "własna obsługa sesji" - jest parę artykułów i nawet gotowe klasy, niestety nie ma takiej możliwości, by skrypt rozpoznał czy user zamknął stronę a się nie wylogował - dobrze jest mu o tym przypominać specjalnym komunikatem (gdy kliknie "wyloguj" odnotowujemy ten fakt). Najczęściej ustawia się po prostu czas ważności ciacha sesyjnego - jeśli user nie wykona żadnej akcji w ciągu powiedzmy 15 minut jest wylogowywany, bo ciacho sesyjne ginie ze starości. Oczywiście własny mechanizm sesji zawiera też licznik osób zalogowanych i sprawdza co jakiś czas, który user ma ważną sesję.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 11 Dołączył: 8.11.2008 Skąd: Sieradz Ostrzeżenie: (10%) ![]() ![]() |
nad własnym mechanizmem sesji jest troche roboty i nie wszędzie zda to rozwiązanie egzamin.
poszukuję trochę prostszego rozwiązania, ma ktoś jakiś pomysł lub propozycje jak to zrobić ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 15.02.2009 Skąd: Racibórz/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wrzucaj do sesji czas aktywowania (time()). I sprawdzaj, czy time() - tamto > 3 * 60 (3min, dla przykładu); jeśli nie, ustawiasz 0 w active.
-------------------- ![]() Griwes' Homepage | eWorld | Moje wypociny | LastFM Profile |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 11 Dołączył: 8.11.2008 Skąd: Sieradz Ostrzeżenie: (10%) ![]() ![]() |
Wrzucaj do sesji czas aktywowania (time()). I sprawdzaj, czy time() - tamto > 3 * 60 (3min, dla przykładu); jeśli nie, ustawiasz 0 w active. w tym wypadku bym musiał ręcznie wywoływać skrypt co jakiś czas a mi chodzi o automat. crontab nie wchodzi w grę chyba że da się zrobić jakiś żeby sie co jakiś czas na widzie odpalał skrypt. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 15.02.2009 Skąd: Racibórz/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ależ automat. Robisz tak:
1. Sesja się odpala; ustawiasz active = 1 i time = time(). 2. Odpalasz UPDATE ... SET active = 0 WHERE time() - time > zadany czas. Sam tak robię i działa doskonale ![]() edit: trochę pokrętnie napisałem wczesniej ![]() Ten post edytował griwes 16.02.2010, 21:22:44 -------------------- ![]() Griwes' Homepage | eWorld | Moje wypociny | LastFM Profile |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 212 Pomógł: 11 Dołączył: 8.11.2008 Skąd: Sieradz Ostrzeżenie: (10%) ![]() ![]() |
kożystając z okacji chciałbym sie dowiedziec dlaczego zapytanie sql nie pobiera mi wszystkich danych.
zapytanie wygląda tak:
tabela w mysql
bez problemu pobiera mi: user_id, username, password, position, email, banned nie chce tylko pobrać: gadugadu, pseudo, sadmin i nie mam zielonego pojęcia dlaczego, męcze się z tym od wczoraj może wy znajdziecie jakiś mały błąd. !~odświerzam~! Ten post edytował maxil 17.02.2010, 11:58:17 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Co to znaczy, "nie chce pobrać"? Może po prostu nie ma tam danych?
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 145 Pomógł: 18 Dołączył: 11.11.2008 Skąd: Pwo Ostrzeżenie: (0%) ![]() ![]() |
w tym wypadku bym musiał ręcznie wywoływać skrypt co jakiś czas a mi chodzi o automat. crontab nie wchodzi w grę chyba że da się zrobić jakiś żeby sie co jakiś czas na widzie odpalał skrypt. Nie. Przed wyświetleniem strony zostaje wykonany zawarty wyżej przykładowy kod, więc wyświetlone zostaną zaktualizowane dane. -------------------- Chcieć to móc, lecz trudnością jest chcieć, nie móc.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:34 |