Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nowy projekt
Forum PHP.pl > Forum > Przedszkole
Loped
Witam. Chcę zrobić nową stronkę, gdzie będzie mozna dodawać komentarze do artykułów, rejestrować się itp. Teraz pytanie... od czego zacząć? Czy strona moze się opierać na domyślnej sesji session_start , czy lepiej zrobić jakiś mechanizm sesji? Stworzyć klasę user, w której będą dane z tabeli uzytkownika?
Fifi209
Zależy czego dokładnie potrzebujesz. Jeżeli projekt nie będzie zbyt wielki to nie widzę potrzeby pisania session handlera, chyba że z przyczyn bezpieczeństwa.

Klasa user - no to chyba podstawa. Nie będziesz za każdym razem wyciągał danych o użytkowniku. Najlepiej zrobić to tak:

Session handler + klasa user

Koleś wchodzi na stronę i się loguje do sesji wczytywane są dane o nim (a że masz ją w ram [bo tak się robi session handlera] to szybciej działa)
Loped
Co myślicie o zastosowaniu takiej klasy sesji?

http://wortal.php.pl/wortal/artykuly/php/a...i/implementacje

I taki kod sesji:

  1. <?php
  2. if(!isset($_SESSION['id_check']))
  3. {
  4.    $_SESSION['id_check'] = true;
  5. }
  6. ?>

Jest dość bezpieczny? Zapobiega przejeciu sesji?

I jak taka klasa user'a powinna wyglądać? Nie wiem jak stworzyć taką klasę, a połączenie z bazą mam zamieszczone w funkcji lacz_bd();.
cojack
Tam jest błąd by użyć session_set_save_handler musisz nadać nazwe dla sesji, gdzie to nigdzie nie jest zrobione... ja bym Ci radził zrobić coś swojego zamiast kopiować na jana.
230005
Się podłączę się winksmiley.jpg .

Cytat
Klasa user - no to chyba podstawa. Nie będziesz za każdym razem wyciągał danych o użytkowniku


Czyli obiekty user należy przechowywać w sesji, tak? (to nie jest podchwytliwe pytanie, naprawdę nie wiem winksmiley.jpg )
Fifi209
Nie obiekty. Patrz klasą user pobierasz informację np. o nicku, ostatnim logowaniu, etc. (hasło pobierasz tylko do logowania! [i ma to być najlepiej w postaci hash'a sha1/md5]) i ładujesz te info do sesji. Tym sposobem, będzie to troszkę wydajniejsze. Bo potem sprawdzisz czy istnieje sesja z tymi danymi zamiast wczytywać wszędzie na nowo.

Wygląda to tak:

User wchodzi na stronę.
User loguje się. (wczytujemy do sesji)
Przechodzi na podstronę.
Tutaj bierzemy dane już z sesji.

Zamiast:
user wchodzi na stronę.
user loguje się
user przechodzi na podstronę i znów pobieramy jego dane
user przechodzi na inną i znów pobieramy dane

Z pamięci ram szybciej odczyta i będzie to raczej wygodniejsze.

@edit

Dodam jeszcze, jeżeli masz własny w pełni konfigurowalny serwer tj. apache + serwer db to nie musisz robić session handlera jak na moje oko.
Sam wiesz co ustawiasz i jak się zabezpieczasz. Jeżeli hosting, radzę zrobić.
Błędy typu session poison przedstawia film unknowa z uw-team

http://www.uw-team.org/index.php?id=videoa...;dzial=security

Polecam zapoznanie się ze wszystkimi videoartami
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.