Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Logowanie & ciasteczka - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Logowanie & ciasteczka (/thread-logowanie-ciasteczka)

Strony: 1 2


Logowanie & ciasteczka - michalszyd - 25-07-2009

Witam,
Potrzebuje zrobić logowanie, przy użyciu sesji i ciasteczek.
Żeby użytkownik który się zaloguję, otrzymał ciasteczko i przez tydzień będzie zalogowany (o ile nie wyloguje się ręcznie). Chodzi mi o to jak wysłać ciasteczko, i jakie, żeby przy odpaleniu strony sesje się automatycznie uaktywniły.
Za każdą pomoc bardzo dziękuję.


RE: Logowanie & ciasteczka - Sajam - 25-07-2009

Jak wysłać ciasteczko?
Kod:
setcookie('nazwacookie', 'wartosc', time()+60*60*24*7);
Już masz ciastko na tydzień.

Co do pytania o uaktywnienie sesji przy odpaleniu strony to nie rozumiem...


RE: Logowanie & ciasteczka - michalszyd - 25-07-2009

Ok. Dzięki.
Dalej chce, żeby to ciastko (jeżeli istnieje i jest aktualne) zostało pobrane na stronę, i wprowadziło mi do sesji że użytkownik jest zalogowany.

sessions.php
Kod PHP:
function login$id )
{
    
$_SESSION["USER_AUTH"]=TRUE;
    
$_SESSION["USER_ID"]=$id;    




RE: Logowanie & ciasteczka - Sajam - 26-07-2009

Kod PHP:
if ( isset($_COOKIE['nazwacookie'])) {
   
$_SESSION['USER_AUTH'] = TRUE;
   
$_SESSION['USER_ID'] = $_COOKIE['nazwacookie'];

W cookie zapisujesz ID usera np.


RE: Logowanie & ciasteczka - KowR - 26-07-2009

Od razu w sesji zapisz sobie nazwę (login) użytkownika: np. rodi - bo często zdarza się, że chcesz np. w panelu usera napisać: "Witaj rodi... Dzisiaj jest ten i ten dzień ..." itd., a w tedy pobieranie tych danych kolejnym zapytaniem z bazy danych mija się z celem jeżeli możesz mieć to pod ręką. Wink


RE: Logowanie & ciasteczka - michalszyd - 26-07-2009

Sajam napisał(a):W cookie zapisujesz ID usera np.
A jeżeli cookie zapiszę jako id usera, to czy niepowołana osoba nie będzie mogła w prosty sposób jakoś podrobić tego ciacha?

rodi napisał(a):Od razu w sesji zapisz sobie nazwę (login) użytkownika: np. rodi
Dzięki rodi. Wiem o tym, ale do celów których chcę osiągnąć, ta opcja jest niepotrzebnaSmile


RE: Logowanie & ciasteczka - KowR - 26-07-2009

Może podmienić więc ciasteczka to nie do końca dobry pomysł -> możesz zapisać w bazie danych id użytkownika + ostatnią akcję i jeżeli minęło od ostatniej akcji np. 15 minut wylogowujesz go i dajesz formularz logowania - najprostszy sposób, który zda egzamin, bo nie ukrywajmy, że ciasteczka można podejrzeć i wejdziesz jako ktoś inny jeżeli odpowiednio tego nie zabezpieczysz.


RE: Logowanie & ciasteczka - DoGeR - 26-07-2009

A nie lepiej wygenerować i zapisać do bazy i do ciastek losowy ciąg znaków przy logowaniu, a potem je porównywać?


RE: Logowanie & ciasteczka - michalszyd - 26-07-2009

DoGeR napisał(a):A nie lepiej wygenerować i zapisać do bazy i do ciastek losowy ciąg znaków przy logowaniu, a potem je porównywać?

Ale co za różnica, skoro jeżeli ktoś wykradnie ciacho, to będzie miał ten losowy ciąg i w rezultacie i tak się zaloguję.

rodi napisał(a):możesz zapisać w bazie danych id użytkownika + ostatnią akcję
Dzięki rodi. Będę kombinował z bazą danych;p Jakoś nie pomyślałem o tym wcześniejSmile

Ale nie wiem do końca jak to zrobić.
A dokładnie odliczenie tych 7 dni. Bo jeżeli będzie 25, serwer doda 7 dni to będzie 32. Jak w krótki sposób wyeliminować ten błąd?


RE: Logowanie & ciasteczka - DoGeR - 26-07-2009

Cytat:Ale co za różnica, skoro jeżeli ktoś wykradnie ciacho, to będzie miał ten losowy ciąg i w rezultacie i tak się zaloguję.
Tak, ale wcześniej była mowa o samym id, które każdy może wprowadzić do cookies, losowy ciąg znaków już bardziej zabezpiecza skrypt.

Cytat:A dokładnie odliczenie tych 7 dni. Bo jeżeli będzie 25, serwer doda 7 dni to będzie 32. Jak w krótki sposób wyeliminować ten błąd?
zapisując cookie dodaje ileś tam sekund, więc nie będzie problemu takiego że + 7 dni będzie 32. On odczytuje uniksowy czas - w sekundach.