Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Logowanie & ciasteczka
#1
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ę.
Odpowiedz
#2
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...
Odpowiedz
#3
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;    

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

W cookie zapisujesz ID usera np.
Odpowiedz
#5
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
Odpowiedz
#6
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
Odpowiedz
#7
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.
Odpowiedz
#8
A nie lepiej wygenerować i zapisać do bazy i do ciastek losowy ciąg znaków przy logowaniu, a potem je porównywać?
Odpowiedz
#9
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?
Odpowiedz
#10
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.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Logowanie STEAM YoutuberAidis 2 3,584 09-06-2017, 16:11
Ostatni post: martasmith
  [PHP] Logowanie na plikach kadobe 1 3,121 23-08-2013, 19:29
Ostatni post: msx83
  Problem z kodem obsługującym logowanie 24soft 2 3,353 09-03-2012, 18:31
Ostatni post: 24soft
  Logowanie facebook + dodatkowy formularz na stronie dawidirzyk 5 5,278 09-10-2011, 16:38
Ostatni post: hieroshima
  Auto Logowanie. jani1992 3 3,860 02-10-2011, 05:00
Ostatni post: Flake

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl