Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ile czasu człowiek jest zalogowany... ( SESJA)
Forum PHP.pl > Forum > Przedszkole
seba22
Mam pytanie,

Męczy mnie męczy użyszkodnik jeden, chyba nie rozumie przepisów bezpieczeństwa... ( ciemnoty), i chce żebym dopisał przycisk " zaloguj na 14 dni".


Może mi ktoś powiedzieć jak to zrobić ?

Z poziomu php.ini moge skonfigurować czas żywotności sesji, np ustawić jej na przykład, 10 dni.

Ale wtedy ta sesja każda będzie trwać 10 dni...


Czyli co, ustawiam 10 dni,

A checkbox daje -> na tydzień ( if na tydzien = true, to zapisuje do sesji wartość daty zalogowania, i przy KAZDYM przeladowaniu storny, obliczam czy uplynal tydzien, jak uplynal to kasuje sesje ( sesion destroy) ?

Dobrze rozumiem, czy jest jakaś inna metoda, badziej ludzka ?
decha-design
Ciastka ... zrób np. ciastko $_COOKIE['logged_id'] z expire date na time() + 14 dni i pozniej sprawdzaj w indexie czy istnieje ... jesli tak to zaloguj

innego sposobu nie znam haha.gif
piotrooo89
jak powiedział ~decha-design ciastko Ci tu pomoże, sam z niego korzystałem i działa. to jest chyba najbardziej "ludzki" sposób wykonania tego, w moim odczuciu.
Astarot
HTTP jest protokołem bezstanowym więc tego nie sprawdzisz, jedyną możliwoscią jest owe ciastko. Przy zalozeniu, ze owe ciastko user zaakceptuje, statysyki pokazuja, ze ponad 90-pare % ciastka akceptuje wiec problemu byc nie powinno, anyway HTTP jest stary od wielu wielu lat nie uaktualniany i ogolem "it sux" ;p
ultra_18
Cytat(Astarot @ 25.12.2008, 01:05:19 ) *
HTTP jest protokołem bezstanowym więc tego nie sprawdzisz, jedyną możliwoscią jest owe ciastko. Przy zalozeniu, ze owe ciastko user zaakceptuje, statysyki pokazuja, ze ponad 90-pare % ciastka akceptuje wiec problemu byc nie powinno, anyway HTTP jest stary od wielu wielu lat nie uaktualniany i ogolem "it sux" ;p


ah te twoje filozoficzne wypowiedzi temat jest o sesjach długoterminowych więc twoje tozwarzania są nie na miejscu szczególnie pierwsza cześć, druga też bo autor już korzysta z sesji które są ciastkami. Krytykujesz innych a popatrz sie na swoje wypowiedzi
Astarot
sesja = ciastko/dane po stronie servera

cookie = ciastko po stronie klienta

@ultra_18 w mojej poprzedniej wypowiedzi nie znajdziesz zadnego zdania falszywego, krytyka rowniez odnosi sie do protokolu, jesli nie potrafisz poprawnie zinterpretowac tak prostej wypowiedzi... to przykro mi sad.gif

Rozwijam: ciastko + sesja = mieszanka wybychowa

w ciastku przechowujemy pewna czesc infromacji ktore sluza do indyfikacji klienta, na serverze np: sume kontrolna pozwalajaca sprawdzic usera. Jesli wszystko sie zgadza ok, puszczamy usera.
Jesli cos sie nie zgadza przykro mi userze wypelnij i wyslij formularz logowania raz jeszcze!

Tak wyglada jedyne sluszne na owe czasy rozwiazanie, oczywiscie nie ufamy sesji php tylko tworzymy wlasny mechanizm w oparciu o baze ktory jest o wiele bardziej wydajny o czym przekonujemy sie pod duzym obciazeniem <:

Odnosnie krytyki protokolu to starszyzna pleminna podzieli ta opinie smile.gif

Badziej ludzkiej odp. niz cookie z danymi identyfikujacymi danego uzytkownika nie znajdziesz smile.gif
seba22
No to co...

W php expire ustawiamy na 15 dni.

Jeżeli facet zaznaczy czekboxa, to dodajemy expire w cookies na 14 dni.

Jeżeli facet nie zaznaczy czekboxa, to dodajemy expire w cookies na powiedzmy 12 godzin.


Dobrze to rozumiem ?
Możemy to tak podsumować ?
decha-design
Nie ...

Jeżeli facet zaznaczy chceckboxa tworzysz ciastko, które będzie przez 14 dni, a póżniej sprawdzasz czy istnieje i logujesz go automatycznie...

Jeżeli facet nie zaznaczyl checkboxa, po prostu nic nie robisz a sesję ustawiasz na wygasanie po zamknięciu przeglądarki .,..

ot co =)
seba22
Gotowe, już działa winksmiley.jpg)

Piątka winksmiley.jpg
ultra_18
tylko jeszcze trzeba to jeszcze zrobić tak, że jeżeli user zmieni hasło to nie zalogowało kogoś innego kto posiada jego ciastko wstydnis.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.