[klasa]Obsluga sesji |
[klasa]Obsluga sesji |
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 Pozdrawiam Marcin Wieczorek Ten post edytował CTRL 12.05.2012, 11:45:38 -------------------- |
|
|
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). |
|
|
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? -------------------- |
|
|
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). |
|
|
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 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ę. -------------------- |
|
|
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"
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). |
|
|
12.05.2012, 14:33:01
Post
#7
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Straszny interfejs klasy.
I to samo odnosi się do innych metod. Nie wiem, czemu nie używasz argumentów metod, tylko dziwnych zmiennych. |
|
|
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?
-------------------- |
|
|
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%) |
Czyli zmienia to tylko wygląd a nie działanie klasy? Czyli że o co Ci chodzi? 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. 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). |
|
|
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 . Forum też bez ciastek nie działa
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.09.2024 - 06:49 |