![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 22.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam Wszystkich. Jestem nowy na forum i początkujący w PHP. Tworzę stronę gdzie jest rejestracja itp.
Chciałbym dodać przycisk taki jak na tym forum podczas logowania ("zapamiętaj logowanie") aby nie trzeba było każdego razu podawać hasła i loginu. Teraz moje pytanei brzmi jak to zrobić ? Nie znam sie na sesjach ani cookies ale te sesyjne zmienne powodują za jak zamknę przeglądarke i otworzę od nowa to login i hasło znika i user nie jest zalogowany . Czyli jest to dobrze dla userów ktorzy nie bedą chcieli pamiętania loginu i hasła. Czy może ktoś pomóc i napisać jak zapamiętać logowanie. ( moze byc tak samo jak na tym forum lub dowolnie) Dzieki ![]() Podaje kod loginu.
|
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 22.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz nadal nie wiem jak to w realu zrobić.
Chodzi o to, gdzie zarejestrować zmienną ? I jak zrobic aby nie wygasła bo z tego co czytałem to cookie ma jakis tam czas. Czyli jak na stronie forum php jest opcja" pamietja logowanie" oznacza to ze ta zmienna wygasnie ? I jak to ma byc w sensie jak to zapisac w html ? I jak np wyłączyc ? jesli klikniemy na wyloguj . |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Wiesz nadal nie wiem jak to w realu zrobić. Chodzi o to, gdzie zarejestrować zmienną ? I jak zrobic aby nie wygasła bo z tego co czytałem to cookie ma jakis tam czas. Czyli jak na stronie forum php jest opcja" pamietja logowanie" oznacza to ze ta zmienna wygasnie ? I jak to ma byc w sensie jak to zapisac w html ? I jak np wyłączyc ? jesli klikniemy na wyloguj . Przy logowaniu dodajesz checkbox'a jesli jest zaznaczony oprocz ustawienia zmienncyh sesyjnych ustawiasz tez coookies z jakims tam expire np 2 tygodnie. Przy kazdym wejsciem na strone sprawdzasz czy wyslano cookie z loginem i haslem(haslo w cookie powinno byc zashaszwane by osoby 3 nie mogly go odczytac korzystajac z tego samego kompa) jesli wyslalo cookie w zapytaniu zamiast robic:
Robisz:
I tyle taki ooglny zarys i jak najlatwiej to zrobic. Cytat I jak np wyłączyc ? jesli klikniemy na wyloguj . Wysylasz takie same cookie tyle ze puste i z tym samym ujemnym czasem. -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie podawaj w ciastku żadnego hasła (nawet w formie hasha) bo to nadal niesie ze sobą spore niebezpieczeństwo.
Jeżeli przy logowaniu checkbox z "Zapamiętaj mnie" został zaznaczony to: 1) Logujesz użytkownika 2) Generujesz jakiś losowy ciąg znaków (na przykład przy pomocy sha1() oraz uniqid()), który będzie naszym kluczem 3) Do bazy danych do osobnej tabeli zapisujesz: ID użytkownika, klucz oraz ewentualnie dane nagłówka USER_AGENT 4) Ten klucz wraz z ID użytkownika wysyłasz jako ciasteczko (przykładowo: 123_klucz) 5) Przy każdym wejściu na dowolną podstronę sprawdzasz czy użytkownik jest niezalogowany. Jeśli tak sprawdzasz czy istnieje ciasteczko automatycfznego logowania. Jeśli i ono istnieje odczytujez z niego ID użytkownika oraz przypisany do niego klucz 6) Następnie wyszukujesz w tej dodatkowej tabeli rekordu, który by spełniał wszystkie kryteria (tj.: odpowiednie id użytkownika, odpowiedni klucz oraz ewentualnie wspomniany wcześniej nagłówek USER_AGENT) 7) Jeśli istnieje to usuwasz ów wpis z tabeli, logujesz użytkownika o ID z ciasteczka oraz generujesz na nowo nowy klucz, który leci do ciasteczka (chodzi o to by klucze były każdorazowo regenerowane) 8) Ewentualnie przy usuwaniu rekordu możesz nieco rozbudować (w sumie od strony kodu sprowadza się to jego uproszczenia :]) warunek tak by usuwane były wszystkie rekordy danego użytkownika. Uniemożliwi to co prawda posiadanie równoległego automatycznego logowania na dwóch komputerach (czy nawet na dwóch róznych przeglądarkach pod jednym systemem) ale daje dodatkową ochronę. Nawet jeżeli ktoś ukradnie zawartość ciasteczka i odpowiednio zmodyfikuje nagłówek USER_AGENT istnieje szansa, że niedoszła ofiara wcześniej zaloguje się na konto unieważniając skradzione dane. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.05.2025 - 07:14 |