Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: powtorne zalogowanie
Forum PHP.pl > Forum > PHP
rfelijak
Witam podczas logowania do mojego serwisu wyciagam z bazy user_id oraz fist_nawe
a nastepnie ustawiam ciasteczka:
setcookie('user_id', $row[0]);
setcookie('first_name', $row[1]);

przy wylogowaniu daje:
setcookie ('first_name', '' , time()-300, '/', '', 0);
setcookie ('user_id', '', time()-300, '/', '', 0);

A kiedy chce sie zalogowac ponownie (nie wylaczajac przegladarki) nie moge...wywala mi jakis blad

nie bardzo potrafie sobie z tym poradzic

z gory dzieki za pomoc

pozdrawiam
rfelijak
matix
Robisz podstawowy błąd przy zapiywaniu ciasteczek. One działają u ciebie jak sesja. Dlaczego? - ano dlaczego, że nie ustawiasz czasu ich trwania.

  1. <?php
  2. setcookie('user_id', $row[0]);
  3. setcookie('first_name', $row[1]);
  4. ?>


zamień na:

  1. <?php
  2. setcookie('user_id', $row[0], time()+3600);
  3. setcookie('first_name', $row[1], time()+3600);
  4. ?>


W ten sposób robisz zalogowanie, działające przez godzinę. Aby się wylogować (z tego co widzę nie będziesz miał jakiegoś podziału na subdomeny, itp) nie potrzeba i 4/5-tego atrybutu, tak więc:

  1. <?php
  2. setcookie('user_id', '', time()-3600);
  3. setcookie('first_name', '', time()-3600);
  4. ?>


Możesz także:

  1. <?php
  2. setcookie('user_id', NULL, time()+3600);
  3. setcookie('first_name', NULL, time()+3600);
  4. ?>


Czyli ustawiasz wartość user_id = NULL oraz First_name = NULL.

Potem już tylko sprawdzenie:

if ( ($_COOKIE['user_id'] == NULL) or ($_COOKIE['first_name'] == NULL) ) { //... }

Choć liczę na to, że masz jakiś skrypt odpowiadający za to, czy cookie ma odpowiednie wartości, gdyż pod operą można sobie edytowac wartości ciasteczek, więc ktoś będzie mógł jako zwykły user miec nazwę Administrator :-)
Lepiej skorzystać z sesji - bezpieczniejsze, wygodniejsze i imho lepsze aarambo.gif

Pozdrawiam,
Matix.
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.