![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jestem jeszcze przed startem pisania kodu dla mojego serwisu pilkarskiego (po raz pierwszy mam zamiar uzyc klas) i w zwiazku z tym mam troche pytan do bardziej doswiadczonych ludzi - BTW czytam to forum od 2-3 dni w poszukiwaniu jakiegos optymalnego rozwiazania, ale nie moge nic znalezc. Konkrety. Chce stworzyc dwa glowne pliki index.php (ogolnodostepna strona) i admin.php (panel admina). W jaki sposob najlepiej sprawdzac wartosc danego parametry w $_GET [] i na podstawie jego ladowac odpowiednie moduly do kontentu jednego z tych dwoch plikow. Dodatkowo chcialbym zeby na dole kazdej podstrony (tej w index.php) byl link do edycji tego modulu w admin.php (o ile user jest zalogowany i ma prawo edycji tego moduly w panelu admina). Przykladowo user (zalogowany redaktor) czyta newsa. Na dole wyswietla sie link: edytuj tego newsa -> przekierowanie do adimin.php/newsy/edytuj/tytul_newsa czyli do konkretnej podstrony gdzie newsa zedytuje.... Kontrole dostepu chcialbym zrobic oparta o taki schemat bazy danych: UZYTKOWNICY (U): -IdUzytkownika -... -IdGrupy GRUPY (G): -IdGrupy -NazwaGrupy -IdAkcji AKCJE (A): -IdAkcji -Nazwa User moze byc w wielu grupach, a grupa moze zawierac wiele akcji. STRUKTURA: -Tytul -Opis -Skrot -Dostep -Level -Rodzic Wczytalbym zmienna z adresu, wyszukalbym w bazie odpowiedniego rekordu (tego ktorego pole Skrot zawiera zmienna wczytana z $_GET []). Jak juz znajdziemy odpowiedni rekord stworzymy na jego podstwie obiekt. Nazywalby sie on np Page. W nim mialbym zawarte dane dotyczace tytulu danej podstrony, opisu i dostepu. Jednoczesnie, tworzylbym obiekt User. Tam mialbym m.in. dane dot dostepu (tzn id akcji jakie moze wykonywac - akcje te przyporzadkowane bylyby do danych rekordow w tabeli STRUKTURA. No i jezeli dana akcja ze STRUKTURA zawiera sie w liscie akcji mozliwych do wykonania przez usera tzn ze ma dostep do tego modulu i wyswietla jemu sie link do edycji na dole lub panel admina. Napisalem "lub", bo chcialbym jakos tak to sprytnie poustawiac, ze np terminarz na stronie a edycja terminarza w panelu z poziomu adresu roznia sie tylko na poczatku, czyli admin.php zamiast index.php. Tak wiec wracajac do sprawdzania dostepu nie ma znaczenia czy sprawdzamy to czy user ma miec wyswietlony link w index.php..... czy ma uzyskac dostep juz do strony w admin.php...... Serwis docelowo moze obslugiwac do 20 000 uniq dziennie, a lezy na home.pl w promocji poki co, wiec nie moge odwalic zbyt duzej zamuly, bo mnie userzy i admini wysla na ksiezyc ![]() Aaa chcialbym jeszcze zrobic licznik online, czyli ile osob oglada serwis teraz i liste tych osob. Kiedys zrobilem to tak: Przy kazdym wejsciu na podstrone sprawdzac czy user (zarejestrowany) jest w tabeli ONLINE, jezeli tak to odswiezamy czas wygasniecia jego aktywnosci na stronie, jezeli nie - dodajemy nowy rekord. Dla gosci to samo - kompy identyfikowalem po agent+ip. Czas aktywnosci ustawialem na 5 min. Chwilami mialem po 300 osob online. No i baza danych dostawala zadyszki. Macie moze jakies inne sposoby? Operowanie na plikach? Kolejne pytanie. Jakiego typu klasy nadaja sie najbardziej na singleton? Zarzadzanie baza danych? Informacje o stronie? Dane o userze? Kolejne pytanie, tym razem dotyczace "przyjaznych URL'i": Wiem, ze trzeba ustawic to przez mod_rewrite, ale intryguje mnie sposob czytania zmiennych z $_GET []. Zalozmy ze mamy 2 adresy: index.php?modul=sezon0708&cmd=terminarz&id=123 index.php?modul=uzytkownicy&id=123 W linku pierwszym paramtery id odpowiadajacy za wskazanie odpowiedniego rekordu w bazie danych jest paramterem trzecim, natomiast w drugim linku jest parametrem drugim. Czy da sie napisac jakas uniwersalna funkcje/klase (? watpie w zasadnosc pisania az klasy), ktora dawalaby mi pewnosc ze ten argument jest na pewno argumentem, ktorego sie spodziewam? Ufff, ale sie napisalem. Mam nadzieje, ze rozwiejecie chociaz niektore z moich watpliwosci/problemow. Pozdrawiam serdecznie andycole Ten post edytował andycole 20.08.2007, 22:48:09 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Co do systemu autoryzacji, to pisałem o tym na swoim blogu. Przemyśl wykorzystanie ról i parametrów, z tym można zrobić praktycznie wszystko. Symfony też używa ról, ale bez parametrów.
Przesyłając dane metodą GET nie zwracasz uwagi na ich kolejność, jako że są to pary klucz-wartość, do których odwołujesz się po kluczu. Znowu odwołam się do symfony - tutaj masz wyjaśnione, jak wygląda routing w tym frameworku. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
co do $_GET. Nie bedzie wazna kolejnosc nawet jak zmienie te adresy na:
index/sezon0708/terminarz/123 i index/uzytkownicy/123 ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To już nie posługujesz się zmiennymi przekazanymi przez GET, tylko odczytujesz dane z PATH_INFO.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
a po co pisać od nowa frameworka?
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tak, wiem ze przez PATH_INFO, ale chodzi mi o to skad mam wiedziec czy np ID jest 2 czy np 3 parametrem? Rozumiem ze dany parametry ma byc caly czas na jednej pozycji?
A co jezeli tak jak mowilem ten sam paramtr w jednym adresie jest ustawiony na pozycji np 4: terminarz/archiwum/sezon0506/182 a w innym na pozycji 2: newsy/193 Co do frameworka Symfony. Mysle, ze sprobuje ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Napisałeś ścieżki do dwóch zupełnie innych akcji, które przyjmują różne parametry. Są dwa podejścia do tego:
http://www.symfony-project.com - tam masz całą dokumentację, forum, weblog, adresy do blogów itd... -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam konto na home.pl - nie mam dostepu do wiersza polecen, wiec z symfony nici? Czy jest moze inny sposob na jej zainstalowanie? Sa jakies inne frameworki, ktorych instalacji ogranicza sie np tylko do skopiowania plikow? Pozdrawiam |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Symfony możesz spokojnie skonfigurować na localhoście, a potem przenieść wszystkie pliki na home.pl. Trzeba tylko zdabać o to, żeby wszystkie ścieżki były poprawne.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 13:42 |