Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System logowania - pytania
Forum PHP.pl > Forum > PHP
tukan
Witam,
mam parę pytań odnośnie systemu logowania:
1. Jeśli ktoś nie zaznacza opcji loguj automatycznie to nie ma problemu, jadę na zwykłej sesji ( dobrze myślę?)
2. I jeśli ktoś zaznacza autologowanie to jak mam to organizować?
a) myślę o cookies, ale jak ktoś ma wyłączoną obsługę to jak go autologować?
cool.gif jeśli na cookies, to co mam w nich zapisywać i czy to jakoś szyfrować?
3. Jak ktoś jest autologowany, ale po jakimś czasie kliknie wyloguj, to czy mam zaimplementować to tak, że: sprawdzam czy są cookie dotyczące autologwania, a następnie (jeśli są) to usuwam je(czy jakoś unieważniam) <- dobrze myślę?
4. Czytałem już o tym w książce, ale może istnieje jeszcze jakiś dobry opis systemu logowania w internecie?
toaspzoo
Jeśli życzy sobie zapamiętać logowanie, to tworzysz w bazie danych token (losowe cyferki itp.) wraz z nazwą użytkownika i ustalasz
cookie przez setcookie(); o jakiejkolwiek nazwie i wartosci token

Przy automatycznym logowaniu sprawdzasz, czy istnieje taki token w bazie i na tej podstawie logujesz (obok tokenu nazwa uzytkownika)

token | nazwa_uzytkownika
tukan
proszę, rozwiń swojego posta, bo nie bardzo rozumiem
Wciąż czekam na odpowiedzi na moje pytania
pozdrawiam
tukan
peter13135
user zaznacza checkboxa "zapamiętaj mnie"
checkbox ma name="remember"

w skrypcie php robisz:
  1. if($_POST['remember'] == 'on')
  2. {
  3. $token = rand(1000,9999);//dużo lepiej było by losować ciąg długi na 32 znaków zawierający litery duże i małe i cyfry, ale to ma być tylko przykład.
  4. mysql_query('UPDATE `users` SET token='. $token . ' WHERE id=' . $id);//to id, to id usera które wcześniej musisz pobrać.. zakładam, że to dla ciebie jasne
  5. set_cookie(...);//tutaj ustawiasz ciasteczko z tokenem, nie pamiętam kolejności parametrów bo niezbyt często tego używam.
  6. }


Jak ma wyglądać tabela pewnie sobie poradzisz

jeśli user jest niezalogowany (brak sesji), to musisz sprawdzić, czy dany user nie zaarzyczył sobie żeby go zalogować.
musisz odczytać cookie. wykonać zapytanie
  1. mysql_query('select id from users where token='. $token_z_ciastka);//oczywiscie musisz filtrowac dane wchodzące

jeśli num_rows==1 to logujesz go smile.gif
tukan
peter13135, wielkie dzięki teraz już lepiej kapuję, ale zadam jeszcze pytanie:
Klient loguje się z zaznaczonym autologowaniem, potem wyłącza przeglądarkę i znowu wchodzi na moją stronę, co skrypt wtedy robi?
Użytkownik może wejść np. na index.php, a może wejść też na strona.php <- i to oznacza, że na każdej podstronie będziemy sprawdzać czy chce być autologowanym?
peter13135
czy user jest zalogowany, powie Ci sesja
robisz sobie 3 linijki
  1. if(!isset($_SESSION['zalogowany;]))//jesli nie zalogowany
  2. {
  3. header('location: zaloguj.php');//przenosi na inna stronę
  4. exit;
  5. }

jeśli cała strona ma być dostępna tylko po zalogowaniu to możesz zrobić sobie jeden plik który to bedzie sprawdzał i inkludować go do każdej podstrony
tukan
No to wiem, że tak sprawdzam czy jest sesja, ale z tego co wiem, to po wyłączeniu przeglądarki zmienne sesyjne są usuwane.
Więc, jeżeli user wyłącza przeglądarkę, a chce być autologowany, to jak wtedy to sprawdzam, przecież zmienne sesyjne chyba nie istnieją.
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.