Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [klasa]Obsluga sesji
CTRL
post 12.05.2012, 11:25:46
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


Witam!

Chciałbym pokazać klasę do obsługi sesji. Wykorzystuje ona bazę mysql. na starcie skryptu wykonujemy Start(); i tworzymy tym nowe id sesji w bazie, oczywiście jeśli nie mamy żadnej sesji rozpoczętej. To id przechowywanie jest w ciasteczkach (sesid). W przykładzie wszystko jest pokazane, [link]. Przed start dajemy oczywiście łączenie z bazą. Dalej możemy robić co nam się podoba, pobierać wartości, zmieniać itp

Na chwilę obecna mamy:
Startowanie sesji
Usuwanie sesji
Pokazywanie wartości (po kluczu)
Pokazywanie wszystkich wartości dla danej sesji
Ustalanie wartości

Chciałbym zapytać czy:
Klasa powinna mieć w sobie zabezpieczenia typu przeciw sql injection itp, czy to używający powinien o to zadbać?
Czy lepsze jest: $sm->set($key,$value); czy $sm->set_value="php.pl" itp. ?

Chciałbym prosić o komentarz, wytknięcie mi wszystkich błędów i poradę co jeszcze można tutaj dodać, bo na pewno jest jeszcze wiele możliwości, z tym że ja nie mam pomysłów smile.gif

Pozdrawiam Marcin Wieczorek

Ten post edytował CTRL 12.05.2012, 11:45:38


--------------------
Go to the top of the page
+Quote Post
!*!
post 12.05.2012, 11:46:46
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


1. nie użyaj VAR przed nazwą zmiennej
2. ustal jakiego typu są te funkcje i zmienne public, private, protected
3. użyj PDO zamiast mysql_*
4. metoda MysqlConnect() jest zbędna, powienien to robić konstruktor o ile nie korzystasz z jakiś wzorców a sama klasa jest użyta do b. prostych stron.
5. po co Ci metody install w klasie do sesji?
6. postaraj się dokumentować kod PHP z przyjętymi "standardami", pomimo że coś napisałeś jako komentarz, niewiele mówi i czy to nie powinno być w dziale oceny?

Co w przypadku gdy nie mam włączonej obsługi ciastek?

Ten post edytował !*! 12.05.2012, 11:50:59


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CTRL
post 12.05.2012, 12:13:49
Post #3





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


1. Nie deklarować zmiennej wcale?
2. Ogarnąłem ten temat i tak zrobiłem.
3. Trochę zajmie przerobienie tego wszystkiego, ale już czytam. Uzasadnij dlaczego ta biblioteka jest najlepsza wg. Ciebie
4. Hę? Mógłbyś wyjaśnić co masz na myśli? Mam łączyć się z bazą z automatu, bez funkcji?
5. Ta funkcja dodaje tabele do bazy danych, w przyszłości będzie może operowała na większą skalę, więc czemu nie?
6. Zdecydowałem że najpierw klasa a potem jak skończę to zrobię wszystko wyjaśniające komentarze. Dlaczego nie oceny? To jest klasa a nie jakaś strona, z Waszą pomocą może uda mi się zrobić coś większego i przydatnego dla innych
7. Dobry pomysł, co wtedy jak mam wyłączone ciastka?


--------------------
Go to the top of the page
+Quote Post
!*!
post 12.05.2012, 12:17:10
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


1. nie musisz deklarować zmienne z "var" na początku, wysatrczy "public $zmienna"
3. mysql_* wyleci z PHP za jakiś czas i zostanie samo PDO
4. do łączenia z bazą powinna być użyta osobna klasa
5. jak wyżej
7. komunikat, return false? cokolwiek, albo osobna metoda dzięki której będę mógł to sprawdzić i dopiero wtedy uruchomić obsługę sesji.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CTRL
post 12.05.2012, 12:22:40
Post #5





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


1. zamiast var dać public? Już się robi.
3. Zagmatwane to jest strasznie, polecicie jakiś tutorial? raz query, raz exec, raz prepare. wszystko chyba daje to samo, nie wiem nie znam się.
4. Do łączenia czyli po prostu wdrożyć PDO? Jakoś nie widzę sensu, to tylko łączenie
5. To samo, osobna klasa tylko po to aby dodać tabelki? Uzasadnij to wink.gif
7. Myślałem że chodziło Ci o funkcjonowanie bez ciastek, a teraz widzę że mówisz o przerywaniu pracy w takim wypadku. Zaraz coś poradzę.


--------------------
Go to the top of the page
+Quote Post
!*!
post 12.05.2012, 12:29:29
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


1. To zależy czy Twoja zmienna ma być "public" wink.gif
3. Tak, http://www.php.net/manual/en/book.pdo.php i google < nie piszę tego złośliwie, są już setki artów na ten temat po prostu. Jak się chcesz pozbyć SQL Injection to poszukaj pod "PDO i bindowanie", chodzi w tym o to że pierw ustalasz co jest czym, a PDO już samo to sobie wklei do zapytania.
4. Jeśli używasz tego w prostej stronie, to może być tak jak jest. Chodzi o to że jak zmienię coś w połączeniu z bazą, to po co mam zmieniać klasę od sesji, na tym polega min, pisanie obiektowe.
5. Ta metoda jest zbędna, bo 1. nie wykorzystuję jej ciągle, a 2. samym mechanizmem instalajci w bazie, zajmuje się instalator aplikacji, więc po co mi w klasie coś, co powinno już dawno być zrobione.
7. Chodzi mi o opcję bez ciastek. Widzisz...to zależy jak budujesz całość, ja to widzę globalne... Chociaż może faktycznie, zostaw to jak jest... Tylko co wyrzuci Twoja klasa jak nie będzie ciastek włączonych?

Ten post edytował !*! 12.05.2012, 12:30:43


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
greycoffey
post 12.05.2012, 14:33:01
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

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


Straszny interfejs klasy.
  1. $session->set('nazwa', 'wartosc');
  2. // jest chyba latwiejsze niz:
  3. $session->set_key = 'nazwa';
  4. $session->set_value = 'wartosc';
  5. $session->set();

I to samo odnosi się do innych metod. Nie wiem, czemu nie używasz argumentów metod, tylko dziwnych zmiennych.
Go to the top of the page
+Quote Post
CTRL
post 12.05.2012, 15:28:26
Post #8





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


Czyli zmienia to tylko wygląd a nie działanie klasy? Już jakiś czas temu zdecydowałem się to zmienić ale chciałem się zapytać co Wy o tym sądzicie. Chciałbym się upewnić co jest grane z tymi ciastkami, bo ustalanie jest przez nagłówki, ale czy pobieranie też? Czy ustalanie ciastka po czym sprawdzanie czy ono jest to dobra metoda na wyłapywanie wyłączonej obsługi cookies?


--------------------
Go to the top of the page
+Quote Post
!*!
post 13.05.2012, 11:19:26
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(CTRL @ 12.05.2012, 16:28:26 ) *
Czyli zmienia to tylko wygląd a nie działanie klasy?

Czyli że o co Ci chodzi?

Cytat(CTRL @ 12.05.2012, 16:28:26 ) *
Już jakiś czas temu zdecydowałem się to zmienić ale chciałem się zapytać co Wy o tym sądzicie.

Jak Ci pasują metody magiczne, to korzystaj.

Cytat(CTRL @ 12.05.2012, 16:28:26 ) *
Chciałbym się upewnić co jest grane z tymi ciastkami, bo ustalanie jest przez nagłówki, ale czy pobieranie też? Czy ustalanie ciastka po czym sprawdzanie czy ono jest to dobra metoda na wyłapywanie wyłączonej obsługi cookies?


Ciastka pobierasz z tablicy $_COOKIE, nie ma innej metody jak próba utworzenia ciastka i sprawdzenie czy się udało.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
memory
post 10.06.2012, 16:20:46
Post #10





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


!*! Słuszna uwaga z ciastkami trzeba będzie poprawić kod smile.gif. Forum też bez ciastek nie działa smile.gif
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: 25.04.2024 - 12:25