Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sesje] Automatyczne logowanie
Forum PHP.pl > Forum > PHP
wojto
Mam pytanie jak zrobic automatyczne logowanie na sesjach.
Czyli, jak uzytkownik zaznaczy przy logowaniu opcje "loguj automatycznie", i zamknie po zalogowaniu okno, to gdy powroci ponownie, znowu bedzie zalogowany.
Rozumie, ze trzeba cos kompbinowac z ciastkami, ale jak to zrobic i tak, zeby plik z sesja nie zostal usuniety z serwera po zamknieciu przegladarki.
Znalazlem w manualu funkcje [manual:c2d8559056]session_set_cookie_params[/manual:c2d8559056] ktora ustawia czas po ktorym ciastko z identyfikatorem zostaje usuniete, czy mozna ja wykorzystac?
z gory dziekuje za odpowiedz
Yacho
Ja tu jestem szara myszka i moze zbyt wiele nie umiem ale na moj chlopski rozum tok postepowania bylby taki:
przy pierwszym logowaniu przy kliknieciu zaloguj automatycznie
zapisujesz w cookie naprzyklad $userloggedin=nazwa_usera
na poczatku kodu strony ktora ma sie zaladowac sprawdzasz czy zmienna userloggedin istnieje w ciastku i czy ma odpowiednia wartosc jesli tak startujesz sesje i nadajesz jej takie wartosci jak przy "normalnym" zalogowaniu usera....

JKutro jak wstane postaram sie poszukac w manualu funkcji ktore ci sie przydadza....
Narazie "rozplasterkowanie" problemu musi ci starczyc - choc znajac zycie za 5 min i tak ktos da odpowiedz bardziej wyczerpujaca od mojej.... smile.gif
BzikOS
Wojto: przecież już na irc podałem Ci jak to zrobić.

Dla przypomnienia:
- user zaznacza pole autologowania,
- ustawiane jest ciacho zawierające nazwe uzytkownika i zakodowane (najlepiej wlasną funkcją) hasło,
- przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja.

btw.: http://forum.php.pl/viewtopic.php?t=1565
Yacho
Cytat
Wojto: przecież już na irc podałem Ci jak to zrobić.

Dla przypomnienia:
- user zaznacza pole autologowania,
- ustawiane jest ciacho zawierające nazwe uzytkownika i zakodowane (najlepiej wlasną funkcją) hasło,
- przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja.

btw.:http://forum.php.pl/viewtopic.php?t=1565


HA czytli jednak taki glupi nie jestem snitch.gif
wojto
Cytat
Wojto: przecież już na irc podałem Ci jak to zrobić.

Dla przypomnienia:
- user zaznacza pole autologowania,
- ustawiane jest ciacho zawierające nazwe uzytkownika i zakodowane (najlepiej wlasną funkcją) hasło,
- przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja.

A ja Ci odpowiedzialem na ircu, podobnie jak ponizej.
Pomysl bez sensu, wiec po co w twoim przykladzie sa potrzebne sesje, tylko po to, by tworzyc daremny kod!?
Zamien sobie ten tekst:
Cytat
przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja

w twojej wypowiedzi na:
Cytat
przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - uzytkownik jest logowany na podstawie danych z ciastka
i juz masz standardowe logowanie na ciastkach. Wogole nie uzywajac sesji.
A ja dokladnie powiedzialem, ze chce na sesjach. Wszelkie inne pomysly mile widziane.
BzikOS
Cytat
Cytat
Wojto: przecież już na irc podałem Ci jak to zrobić.

Dla przypomnienia:
- user zaznacza pole autologowania,
- ustawiane jest ciacho zawierające nazwe uzytkownika i zakodowane (najlepiej wlasną funkcją) hasło,
- przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja.

A ja Ci odpowiedzialem na ircu, podobnie jak ponizej.
Pomysl bez sensu, wiec po co w twoim przykladzie sa potrzebne sesje, tylko po to, by tworzyc daremny kod!?

Po to, że każdy normalny system logowania opiera się na sesjach, a nie na cookiesach, a w tym przypadku cookie służą tylko i wyłącznie do automatycznego logowania.

Cytat
Zamien sobie ten tekst:
Cytat
przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - ustawiana jest sesja

w twojej wypowiedzi na:
Cytat
przy kolejnych odwiedzinach sprawdzane jest ciacho, jeśli istnieje - uzytkownik jest logowany na podstawie danych z ciastka

Myślałem, że to jest tak oczywiste, że moge zastosowac skrót myślowy.. jak widać myliłem się.

Cytat
[...] i juz masz standardowe logowanie na ciastkach. Wogole nie używajac sesji.

Dla mnie standardowym logowaniem jest logowanie z użyciem sesji.

Cytat
A ja dokladnie powiedzialem, ze chce na sesjach.

W takim razie nie wiesz do czego są i jak działają sesje. Proponuję poczytać coś na ten temat.

Cytat
Wszelkie inne pomysly mile widziane.

Powodzenia.
wojto
Cytat
Po to, że każdy normalny system logowania opiera się na sesjach, a nie na cookiesach, a w tym przypadku cookie służą tylko i wyłącznie do automatycznego logowania.

wiem, ze tak sie da, ale to mnie nie zadowala, bo uzytkownik moze podejzec ciastko, a ja chce aby nie mia takiej mozliwosci, nawet jesli sa tam zakodowane hslo i login

Cytat
W takim razie nie wiesz do czego są i jak działają sesje. Proponuję poczytać coś na ten temat.

Dobrze wiem do czego sluza sesje. Tylko rozwiazanie swojego problemu widze w ten sposob:
1. uzytkownik sie loguje zaznaczajac opcje automatycznego logowania
2. tworzona jest sesja na serwerze, ktora ma nadana dluga zywotnosc, tak, by nie zostala usunieta, gdy zamknie sie przegladarke
3. wysylane jest ciastko do usera z numerem SID sesji, ktore rowniez ma bardzo dlugi czas zycia
4. uzytkownik zamyka przgladarke, ale sesja ani ciacho nie sa usuwane
5. uzytkownik wchodzi ponownie na strone, skrypt sprawdza czy istnieje ciastko o jakiejs konkretnej nazwie, jesli tak, to pobiera z nieko identyfikator i odczytuje z serwera sesje o nazwie jak identyfikator.
6. skrypt loguje usera na podstawie danych pobranych z sesji.
I tu jest moje pytanie, jak zrobic, aby sesja nie zostala usunieta z komputera, po zamknieciu okna, czy podana w moim pierwszym poscie f-cja set_cookie_params zadziala, moze ktos sie z nia zetknal?

Cytat
Cytat
Wszelkie inne pomysly mile widziane.

Powodzenia.
Mimo wyczucia lekkiego oburzenia w twojej wypowiedzi powiem "Dziekuje".
BzikOS
Przeglądarki automatycznie kasują stare cookie (zdaje się że po miesiącu, bez względu na maxlifetime ciacha).
kwiateek
Przechowuj ID sesji w bazie a nie na serwerze i wtedy nie będzie problemu z wymieraniem sesji.
W tym celu skorzystaj z: [manual:cc50eadeaf]session_set_save_handler[/manual:cc50eadeaf]

Pozdrawiam
wojto
Cytat
Przeglądarki automatycznie kasują stare cookie (zdaje się że po miesiącu, bez względu na maxlifetime ciacha).

wiem, ale nawet te 30 dni by mi wystarczylo
czy ktos uzywal funkcji session_set_cookie_params?
ustawia ona czas zywotnosci ciasteczka sesyjnego, ale nasuwaja mi sie nowe pytania:
- czy ustawiajac dluzszy czas zycia ciastka sesyjnego tym samym zapobiegamy usunieciu pliku z sesja do czasu usuniecia ciastka ?
- czy ostawiony czas zycia ciacha dziala tylko dla jednej sesji ?
- jesli dla wszystkich, to czy jak ustawie czas ciastka na 30 dni, wystartuje sesje, potem znowu zmienie czas zycia ciastka na mniejszy, to czy tamto ciastko zostanie usuniete? chyba nie, ale nie jestem pewien

// EDIT Kwiateek w bazie mnie nie zadowala, wolalbym w plikach, moze bylo by lepiej w mysql'u, ale sesji nie znam jeszcze tak dobrze
pzdr.
spenalzo
Nic Ci nie odpowiada co inni Ci podaja.. Moze sam coś wymyślisz?

Co do tej funkcji - sam sprawdź jej działanie.
wojto
Cytat
Nic Ci nie odpowiada co inni Ci podaja.. Moze sam coś wymyślisz?

Co do tej funkcji - sam sprawdź jej działanie.

Masz racje, nie odpowiadaja mi ich sposoby. Wlasnie wymyslilem sam, to co napisalem post wyzej smile.gif
Co do sprawdzania samemu, chwilowo nie mam mozliwosci sprawdzenia w internecie, a w domu sprawdzalem, ale tu nawet zwykle zamkniecie przegladarki nie usuwa pliku z dysku, wiec wszelkich innych prob zaniechalem.
Mam sprecyzowany pomysl i chcialbym sie jak najdokladniej jego trzymac. Jesli nie dostane odpowiedzi, to zapewne skorzystam z ktorejs z w/w odpowiedzi.
pzdr.
rzseattle
1. Jak masz sprecyzowane wymagania to zle zadales pytanie mogles zadac np. 'Jak zachowac sesjie' itd.
2. 'po lekku' traktujesz ludzi ktorzy poswiecaja czas zeby TOBIE pomoc
3. Masz gotowa odpowiedz i nawet nie pokwapiles sie wejsc tu [manual:afd3c27099]session_set_save_handler [/manual:afd3c27099] i zobaczyc ze juz przyklad jest oparty na sesji w plikach
4. Na necie jest pelno gotowcow||tutoriali wiec jesli chcesz zrobic cos konkretnego to polecam http://www.google.pl/search?q=session+%2Bf...-8&start=0&sa=N
wojto
Cytat
1. Jak masz sprecyzowane wymagania to zle zadales pytanie mogles zadac np. 'Jak zachowac sesjie' itd.

poczatkowo chodzilo mi ogolnie o logowanie automatyczne na sesjach, ale z kolejnymi postami faktycznie nieco zboczylem z pierwotnego zalozenia tematu
Cytat
2. 'po lekku' traktujesz ludzi ktorzy poswiecaja czas zeby TOBIE pomoc

poprostu nieodpowiadal mi ich sposob rozwiazania tematu, wiec pytalem dalej, czy ktos wie jak rozwiazac problem, tak jak ja chcialem
jezeli kogos obrazilem, to sorry, ale mam chyba jakis ciezki dzien
Cytat
3. Masz gotowa odpowiedz i nawet nie pokwapiles sie wejsc tu [manual:3d183d50a0]session_set_save_handler [/manual:3d183d50a0] i zobaczyc ze juz przyklad jest oparty na sesji w plikach

wlasnie, ze sie pokwapilem i ciagle zagladalem do manuala, ale nie przyszlo mi do glowy, ze trzeba robic uchwyty sesji do plikow, myslalem, ze sa one juz wbudowane w php
Cytat
4. Na necie jest pelno gotowcow||tutoriali wiec jesli chcesz zrobic cos konkretnego to polecam http://www.google.pl/search?q=session+%2Bf...-8&start=0&sa=N
teraz to juz bede wiedzial, thx
pewnie skorzystam z tego przykladu w manualu, lub z przechowywania sesji w bazie: http://www.cheetah-soft.com/csh/
Jednakze, jakby ktos mi wytlumaczyl czy da sie to zrobic moja droga myslenia, to bulbym wdzieczny
rzseattle
Cytat
wlasnie, ze sie pokwapilem i ciagle zagladalem do manuala, ale nie przyszlo mi do glowy, ze trzeba robic uchwyty sesji do plikow, myslalem, ze sa one juz wbudowane w php

jasne ze sa wbudowane w php tylko ze wlasny handler daje tobie calkowita kontrole nad tymi plikami i jesli zeszcesz nie czyscic starych sesji to mozesz je i pol roku w TWOICH plikach trzymac

Cytat
pewnie skorzystam z tego przykladu w manualu

to byl tylko przyklad i nie mowilem ci ze masz to wykozystac tylko zeby tomoze wskazac pewen kierunek
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.