Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Autowylogowywanie
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam, chce zrobić autowylogowywanie że jeśli jakiś zalogowany użytkownik nic nie zrobi przez 10 min czyli jeśli nie odświeży strony itp to go wylogowuje, ok sprawa niby prosta ale chce jakiś waszych rad i czy takie rozwiązanie jest dobre czy może zamula serwer:

Stworzyć sobie plik np. "updatuj.php" i w nim zrobić warunek że jeśli jesteś zalogowany i jeśli dane z kolumny "last_log" z tabeli "users" są większe o 10 min od time(); to wylogowwujemy a jeśli dane nie są mniejsze to dajemy else i updatujemy kolumne "last_log" na time(); where user_id = $_SESSIO['user_id']....

I ten plik updatuj.php includować na kazdą podstrone

I teraz pytanie czy dobrze myślę i czy takie rozwiązane jest dobre i korzystne ?


2 Pytanie czy taki sposób logowania jest bezpieczny czy można jakoś nadpisać sesję albo coś w tym stylu,
robie tak gdy user poda prawidłowe dane to ustawiam:
$_SESSION['zalogowany'] = true;
$_SESSION['user_id'] = $row['id'];
$_SESSION['user_nick'] = $row['nick'];

i potem na stronie która ma być widoczna tylko zalogowanemu użytkownikowi sprawdzam w ifie
if($_SESSION['zalogowany'])
{
/// strona dla zalogowanego
}
Fifi209
W ustawieniach php możesz wybrać ile sesja ma być ważna. winksmiley.jpg

ew. Lektura o Session Handler
dk1342
nie mam dostępu żeby ustawiać php

mi chodziło co myślicie o tym co pisałem czy to dobry sposób itp
Fifi209
Jeżeli pytasz o samo updatowanie, możesz robić jak piszesz - obciążenie? I tak nie Twój serwer.

Bezpieczeństwo - nie masz serwera tylko dla siebie? Nie możesz zmieć ustawień? Więc co tu mówić o bezpieczeństwie.

Jeżeli chcesz mieć bezpiecznie, napisz/skorzystaj z (gotowego) session handlera, naprawdę opłaci się. Ja napisałem taki naprawdę prosty dla siebie ale wystarcza i znacznie lepiej się z tego korzysta niż z funkcji oferowanych przez php.
MateuszS
Ad. 1

Nie musisz tak robić. Po co mulić sobie bazę skoro można obciążyć usera i jego przeglądarkę? Zastosuj ciasteczka w prosty sposób.

przy logowaniu
  1. <?php
  2. setcookie('zalogowany','nazwausera',time()+60*10); // na 10 min  cookie
  3. ?>


potem na podstronach sprawdzasz warunek

  1. <?php
  2. if(!isset($_COOKIE['zalogowany']))
  3. {
  4.    header("Location: index.php"); // strona dla gosci
  5. }
  6. ?>



Ad. 2

Ja podobnie robię i działa, tylko dorzucam warunek ciasteczka.
Fifi209
Cytat(MateuszScirka @ 9.07.2009, 17:31:45 ) *
Ad. 1

Nie musisz tak robić. Po co mulić sobie bazę skoro można obciążyć usera i jego przeglądarkę? Zastosuj ciasteczka w prosty sposób.

przy logowaniu
  1. <?php
  2. setcookie('zalogowany','nazwausera',time()+60*10); // na 10 min  cookie
  3. ?>


potem na podstronach sprawdzasz warunek

  1. <?php
  2. if(!isset($_COOKIE['zalogowany']))
  3. {
  4.    header("Location: index.php"); // strona dla gosci
  5. }
  6. ?>

Ad. 2

Ja podobnie robię i działa, tylko dorzucam warunek ciasteczka.



A jak ktoś nie ma włączonej obsługi ciasteczek to jest kapa.
W dodatku jeżeli opierasz się na danych z cookies to tylko pogratulować głupoty, firecookie i jestem zalogowany lub edycja przez operę.

Ja w cookies przechowywałbym tylko id sesji.
erix
Cytat
Nie musisz tak robić. Po co mulić sobie bazę skoro można obciążyć usera i jego przeglądarkę? Zastosuj ciasteczka w prosty sposób.

przy logowaniu

session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual... dry.gif
MateuszS
Cytat(fifi209 @ 9.07.2009, 18:37:44 ) *
A jak ktoś nie ma włączonej obsługi ciasteczek to jest kapa.
W dodatku jeżeli opierasz się na danych z cookies to tylko pogratulować głupoty, firecookie i jestem zalogowany lub edycja przez operę.

Ja w cookies przechowywałbym tylko id sesji.


No własnie to + sesje, nie bede wszystkiego tu pisal. Nigdy na samych ciachach nie jadę.

I głupi to jesteś ty winksmiley.jpg BEZ URAZY haha.gif
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.