Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Autowylogowywanie
dk1342
post
Post #1





Grupa: Zarejestrowani
Postów: 275
Pomógł: 9
Dołączył: 24.07.2008
Skąd: Racibórz

Ostrzeżenie: (10%)
X----


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
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


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.

Ten post edytował MateuszScirka 9.07.2009, 17:33:15
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 18:46