Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie, a zmienne sesji
Forum PHP.pl > Forum > PHP
kkuubbaa88
witam

chcialbym sie dowiedziec po co przy logowaniu robi sie cos takiego jak unikatowy numer sesji ? po prostu przy zalogowaniu jest tworzony specjalny ciag znakow, ktory jest przypisywanych do zmiennej sesji... do czego on moze sluzyc ? czy nie wystarczy zamiescic w zmiennych danyc uzytkownika z bazy i sprawdzac czy sesja istnieje questionmark.gif

czy tez lepiej jest stworzyc zmienna dodac ja do bazy, a potem za kazdym razem sprawdzac czy zmienna sesji rowna sie tej z bazy ? aby nikt sie nie mogl podszyc do sesje ?
l0ud
Przy logowaniu - utworzeniu sesji tworzy się jej identyfikator. Jest on wysyłany do przeglądarki w formie ciasteczka, albo przekazywany pomiędzy podstronami w adresie jeżeli cookies nie są akceptowane. Dzięki niemu serwer może odróżnić sesję użytkownika od innych. Nie da się używać sesji bez niego winksmiley.jpg
kkuubbaa88
takie cos sie robi automatycznie ? czy sami tworzymy te cuda ?
.radex
Można zrobić cały system sesjii po swojemu, a można też użyć gotowych narzędzi - wtedy nie musimy się martwić wszystkim.
l0ud
Automatycznie - przy tworzeniu sesji przez session_start();
nitro18
Mam pytanie z innej beczki.

Używam po session_start() session_regenerate_id() co powoduje "przekopiowanie danych" do innego pliku sesji z innym identyfikatorem. Ale jak wejdzie powiedzmy 30 osób to mamy dużo plików sesji. Czy takie coś jest wydajne? Czy jeżeli dany plik sesji nie jest używany jest zastępowany przez inny w pliku temp serwera.

Skorzystałem z porady: Bełdzia: http://www.beldzio.com/bezpieczenstwo-mechanizmu-sesji.freez
.radex
Dużo plików sesji? 30 plików sesji to bardzo mało. 1000 nie jest jakąś bardzo dużą ilością. 30 to tyle co nic.
kkuubbaa88
mi chodzi mniej wiecej o to, ze dodalem do kazdego uzytkownika pole sesja_id a w nim jest losowy ciag liter i liczb. i teraz pomimo tego, ze sprawdzam czy sesja istnieje rowniez na samym poczatku patrze czy wartosc ze zmiennej sesji jest taka sama jak wartosc w bazie danych jak tak to jest ok... jak nie to znaczy, ze ktos cos kombinuje... czy takie cos moze byc ? jest poprawne ? zbedne ?
.radex
Ale po co ci zapisywanie identyfikatora sesji, jeśli używasz gotowego, PHPowskiego systemu sesji?
kkuubbaa88
no do sprawdzenia czy zgadza sie z tym w bazie danych ?
nitro18
Cytat
Dużo plików sesji? 30 plików sesji to bardzo mało. 1000 nie jest jakąś bardzo dużą ilością. 30 to tyle co nic.


A kto mówi o 30. Ale co wtedy robi serwer z taką dużą ilością plików sesji.
.radex
kkuubbaa88 - to się zdecyduj - albo własny system sesji przy użyciu bazy danych, albo gotowy system z PHP. Nie widzę sensu mieszania obu sposobów.

nitro18 - jak to kto mówi o 30 smile.gif? Ty sam tongue.gif

Cytat(nitro18)
Ale jak wejdzie powiedzmy 30 osób to mamy dużo plików sesji.


I to wcale nie jest duża ilość plików. A serwer sobie z tym poradzi.
nitro18
radex czytaj dokładnie powiedziałem 30 osób a nie 30 plików
.radex
jedna osoba == jedna sesja == jeden plik sesji.

Skończone sesje są sprzątane.
sobstel
Cytat(radex_p @ 28.06.2008, 22:15:55 ) *
jedna osoba == jedna sesja == jeden plik sesji.


jeśli używamy session_regenerate_id bez użycia argumentu (bool)true tj. session_regenerate_id(true) to plik ze starą sesją nie jest automatycznie kasowany (wtedy pliki się mnożą dopóki nie zostaną posprzątane przez gc, przy czym trzeba pamiętać, że to kiedy następuje sprzątanie z reguły zawsze jest obarczone pewną losowością).
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.