![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
Nie wiem, czy jest to do końca ważne co dokładnie projektuje, ale chciałbym, żebyście skorygowali mój tok myślenia.
1) mam sobie kilka rodzajów includeów, a) wszystko zapisane jako .php i objete w <? ?> (np. ustawienia skryptu na zasadzie $zmienna = "wartosc' (rzeczy typu hasla do bazy, loginy, inne wartosci) (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) podobnie na zasadzie define('BLAD', opis); porobione komunikaty c) w jednym includzie funkcje, w drugim klasy d) chce docelowo includowac plik html, za pomocą str_replace podmieniac ciagi %%tutaj_cos%% na odpowiedzi skryptu (czy lepiej tak jak w joomli wykonywac w odpowiednich miejscach templatu odpowiednie funkcje?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? 2) index.php includuje wszystko, zawiera sobie glowny obiekt oraz switche akcji (index.php?akcja=cos_tam i cos_tam jest case'm) 3) logowanie i zmienne oparte na sesjach, ale poprostu ustawiam zmienne jak "logged in" itp, nie wiem czy wymagany jest inny mechanizm, logowanie porownuje jedynie hashowane md5 hasło z zahashowanym hasłem z bazy 4) wszystkie $_GET i $_POST przed obrobka przejezdzam rekurencyjna funkcja z strip_slashes itp 5) komunikacja z baza wyglada tak, ze tworzony jest obiekt mysql, ktory nawiazuje przy tworzeniu polaczenie, a reszta odbywa sie za pomoca mysql_query, ale cos czuje, ze chce zrobic to tak, ze dla kazdej tablicty bedzie osobna klasa z rodzajem metody tablica.set_costam(wartosc) dajcie znac, czy ide w dobra strone |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
a) nie dokońca, jak zaczynasz łańcuch " to tym samym go kończysz, podobnie sprawa ma się do '
d) polecam smarty 2) ja bym to zrobił w całości w OOP, dodatkowo użył bym mod_rewrite a do reszty nie mam uwag (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
a) nie dokońca, jak zaczynasz łańcuch " to tym samym go kończysz, podobnie sprawa ma się do ' d) polecam smarty 2) ja bym to zrobił w całości w OOP, dodatkowo użył bym mod_rewrite a do reszty nie mam uwag (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) @a) - literówka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) @d) przejrze sobie w koncu to smarty, bo nie pierwszy raz mnie ten temat atakuje, ale tak na szybko: na jakiej zasadzie dziala wtedy to co moj skrypt wywala (czy robie jakies przechwytywanie bufora, czy wywalam odp do zmiennych?) a potem podpiecie tego pod templatke? a juz widze, czyli ustawiam sobie poprostu zmienne obiektu smarty... proste jak budowa gwoździa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) @2) tzn. bawic sie w rzeczy typu serwer/wyswietlanie == serwer/index.php?akcja=wyswietl ? Ten post edytował uirapuru 6.05.2009, 06:22:45 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
w smarty ładujesz wszystkie informacje do tablicy, następnie podpinasz szablon, a w samym szablonie można sporo zrobić też (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
a jeżeli chodzi o mod_rewrite, to tworzysz kontener, który będzie wykonywany jak na podanym adresie nie będzie pliku .htaccess Kod <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /controller.php [L] </IfModule> controler.php Kod $lokalizacja = $_SERVER["REQUEST_URI"]; $page = explode('/',$lokalizacja); ....... interpretujesz adres jak Ci wygodnie pozbywasz się ?& i innych śmieci na rzecz htto://www.costam.pl/costam/costam smarty Kod require_once 'lib/Smarty.class.php'; $sm = new Smarty(); $sm->assign('witaj',"Witaj"); $sm->display('index.html'); templates/index.html Kod <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="Keywords" content="{$keywords}" /> <meta name="Description" content="" /> <meta name="Robots" content="index, follow" /> <meta name="Revisit-After" content="1 day" /> <meta name="Page-Topic" content="{$pagetopic}" /> <meta name="Rating" content="General" /> <title>{$page_head}</title> </head> <body> {$witaj} </body> </html> w smarty można sporo rzeczy robić a modyfikacja templatki modyfikuje wygląd strony, chociaż tu lepiej użyć XHTML i CSS |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
no tak, to musze poprostu o tym wiecej poczytac potem. jak sie domyslam serwer/skrypt/arg1/arg2/arg3 mam potem do eksplodowania z adresu? czy od razu jako zmienne sa w skrypcie dostepne?
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%)
|
Cytat c) w jednym includzie funkcje, w drugim klasy To nie ma być tak, że jest podzielone ze względu na rodzaj (typ/klasa), tylko ze względu na przeznaczenie, np. w DB.php znajdują się klasy i funkcje związane z bazą danych. Chociaż to może był zły przykład, bo nie powinno się dawać kilku klas w jednym pliku, bo wprowadzają zamieszanie, no chyba, że są krótkie. Cytat d) chce docelowo includowac plik html, za pomocą str_replace podmieniac ciagi %%tutaj_cos%% na odpowiedzi skryptu (czy lepiej tak jak w joomli wykonywac w odpowiednich miejscach templatu odpowiednie funkcje?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? Użyj jakiegoś gotowego systemu szablonów (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) http://pornel.net/szablony Ten post edytował .radex 6.05.2009, 06:38:52 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
jeszcze jedno jest ważne
smarty musi mieć jeden katalog do zapisu domyślny jest templates_c na nim ustaw odpowiednie prawa no tak, to musze poprostu o tym wiecej poczytac potem. jak sie domyslam serwer/skrypt/arg1/arg2/arg3 mam potem do eksplodowania z adresu? czy od razu jako zmienne sa w skrypcie dostepne? używasz explode, dla ciebie taki adres to źródło informacji dla innych jest czytelny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To nie ma być tak, że jest podzielone ze względu na rodzaj (typ/klasa), tylko ze względu na przeznaczenie, np. w DB.php znajdują się klasy i funkcje związane z bazą danych. Chociaż to może był zły przykład, bo nie powinno się dawać kilku klas w jednym pliku, bo wprowadzają zamieszanie, no chyba, że są krótkie. dobry pomysł, możesz w katalogu /DB umieścić klasy obsługi baz danych, zmiana informacji w konfiguracji może spowodować że twój projekt będzie obsługiwał różne silniki bazodanowe Użyj jakiegoś gotowego systemu szablonów (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) http://pornel.net/szablony dla czego nie, wiele projektów na nim zrobiłem, i sobie go chwale (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował okitoki 6.05.2009, 06:49:24 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
dobry pomysł, możesz w katalogu /DB umieścić klasy obsługi baz danych, zmiana informacji w konfiguracji może spowodować że twój projekt będzie obsługiwał różne silniki bazodanowe dżizys, znaczy mam sobie zrobic katalog /db_mysql na przyklad i kazda klase zapisywac w osobnym pliku a potem to includeowac jakimś dir i w pętli dla kazdego pliku?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ? bo na moj gust stykloby zrobic jeden plik dla mysql, jeden dla postgresa itd... i zunifikowac jedynie nazwy klas i metod a w konfigu podawac nazwe pliku... dobrze mysle? |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 18 Dołączył: 25.04.2009 Ostrzeżenie: (20%)
|
możesz też zrobić np
mysql.php Kod class mysql { } potem można zrobić include uniwersalne w funkcji autoload, już nie muszisz robić include(......) tylko robić $sql = new mysql(); a skrypt dołączy ci sam odpowiedni plik klasy jak coś raz zrobisz dobrze w OOP, to możesz to potem wykorzystywać w wielu swoich projektach i z modyfikacjami takich projektów też potem nie ma problemu |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
kurde, 10 minut czytania waszych postow i rece sie trzesa do nowego pisania (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) za duzo tego php, zeby sie na pamiec nauczyc, a jeszcze wlasnie kwestia odpowiednich rozwiazan. szukalem czegos takiego jak wzorce projektowe, ale one sa raczej w skali ogolnej niz szczegolnej, chodzi mi np. o temat: "jak sie pisze bezpieczne logowanie do serwisu i bezpiecznie obsluguje sesje". niby proste, ale ilu programistow tyle rozwiazan. albo obsluga ciasteczek itd. czy sa jakies gotowe standardy i wzorce programistyczne?
Ten post edytował uirapuru 6.05.2009, 07:07:57 |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
1. Sprawa sesji - tak, są powszechnie znane techniki ich zabezpieczania i pewne standardy ich tworzenia. Kiedyś powstało "PHP Security Consortium"... coś szybko się wykruszyło, ale zostawiło po sobie całkiem interesujący dokument dotyczący m.in. sesji: http://phpsec.org/projects/guide/
2. Przejeżdżanie $_GET oraz $_POST przez stripslashes() - nie rób tak! Słowem kluczowym jest tutaj: magic_quotes, ty powinieneś pisać skrypty tak, jakby było ono wyłączone, a usuwać slashe tylko wtedy, gdyby włączone było. W PHP6 opcja ta zniknie i będziesz w kropce, bo Twój skrypt będzie do przeróbki. 3. Nie pisz nowej klasy do komunikacji z bazą danych od zera, tylko skorzystaj albo z czystego PDO, albo z rozwiązania bazującego na nim. Stare rozszerzenia, o ile są już w PDO zaimplementowane zamienniki, nadają się właściwie tylko na śmietnik. Przy okazji PDO automatycznie dostosowuje się do ustawień magic_quotes. 4. Kwestia systemu szablonów - Smarty ma tę zaletę, że jest popularny, ale w sumie od lat stoi w miejscu i od strony składni szablonów nie błyszczy - idzie mocno w stronę "tradycyjnego" programowania, więc i tak trzeba się namęczyć, by cokolwiek bardziej zaawansowanego napisać, do tego pozmieniał dobrze funkcjonujące rozwiązania programistyczne (komu przeszkadzało wywołanie funkcji w stylu f(x) ?) i nie ma zbyt wiele narzędzi do modularyzacji i wielokrotnego wykorzystania tego samego kodu. W ogóle temat systemów szablonów jest o wiele bardziej złożony, pełno tutaj różnych mitów i pseudoporównań (np. widziałem już "porównania" typu "Smarty"-jakiś framework, i to robione przez naprawdę znających się na rzeczy programistów (!)). Kiedyś w jakiś rodzaj systemów szablonów i tak będziesz musiał wejść, więc może warto poczytać parę rzeczy na ten temat: http://pornel.net/szablony - już podany wyżej, trochę przydałoby mu się odświeżenia, ale ogólnie OK http://www.zyxist.com/pokaz.php/uzyteczne_systemy_szablonow http://phpedia.pl/wiki/Systemy_szablonów Ten post edytował Zyx 6.05.2009, 07:59:54 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 182 Pomógł: 9 Dołączył: 30.04.2005 Ostrzeżenie: (0%)
|
w smarty ładujesz wszystkie informacje do tablicy, następnie podpinasz szablon, a w samym szablonie można sporo zrobić też (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) a jeżeli chodzi o mod_rewrite, to tworzysz kontener, który będzie wykonywany jak na podanym adresie nie będzie pliku .htaccess Kod <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /controller.php [L] </IfModule> controler.php Kod $lokalizacja = $_SERVER["REQUEST_URI"]; $page = explode('/',$lokalizacja); ....... interpretujesz adres jak Ci wygodnie pozbywasz się ?& i innych śmieci na rzecz htto://www.costam.pl/costam/costam rozumiem, ze zamiast controller.php moge od razu dac index.php? czy przekierowanie robic z pliku "obok" i zmienne przewalać dopiero do index.php i przekierowywac tam z uzyciem header() ? |
|
|
|
![]() ![]() |
|
Aktualny czas: 31.12.2025 - 20:14 |