Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> System logowania - pytania
tukan
post 23.06.2011, 20:30:45
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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?

Ten post edytował tukan 23.06.2011, 20:32:43
Go to the top of the page
+Quote Post
toaspzoo
post 23.06.2011, 20:37:19
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


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


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
tukan
post 23.06.2011, 21:10:49
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


proszę, rozwiń swojego posta, bo nie bardzo rozumiem
Wciąż czekam na odpowiedzi na moje pytania
pozdrawiam
tukan
Go to the top of the page
+Quote Post
peter13135
post 23.06.2011, 21:24:02
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


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

Ten post edytował peter13135 23.06.2011, 21:25:43


--------------------
:)
Go to the top of the page
+Quote Post
tukan
post 23.06.2011, 21:35:23
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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?
Go to the top of the page
+Quote Post
peter13135
post 23.06.2011, 21:42:33
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


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


--------------------
:)
Go to the top of the page
+Quote Post
tukan
post 24.06.2011, 09:13:04
Post #7





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 19.06.2011

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


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ą.

Ten post edytował tukan 24.06.2011, 09:13:38
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 - 00:06