Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> powtorne zalogowanie
rfelijak
post 8.06.2007, 23:20:00
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.06.2007

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
matix
post 9.06.2007, 09:49:08
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


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.


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
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: 14.08.2025 - 05:08