![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Mam problem ze zrozumieniem routeringu w php. Tu jest skrypt routera który chciałbym użyć. Gdy użyję kodu od autora:
Wtedy $routeInfo zawsze jest pusty. Czy pomoże mi ktoś zrozumieć zasady działania tego Routera? Czy muszę użyć przekierowań w pliku .htaccess? Chciałbym wiedzieć jak definiowane są linki oraz jak je odbierać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, musisz wszystkie requesty rzucić na router czyli .htaccess lub konfiguracja vhosts
Ten post edytował Pyton_000 31.08.2015, 13:23:13 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Czy jest jakiś uniwersalny request dla .htaccess? Niestety autor skryptu nic nie wspomniał o tym pliku aby go użyć. Jak powinien wyglądać .htaccess dla tego skryptu?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
pewnie:
Kod RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^?]*)$ /index.php [NC,L,QSA] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Skoro wyświetla się jakikolwiek wynik, nawet pusty, to znaczy, że żądanie leci przez router (IMG:style_emoticons/default/smile.gif)
Pokaż jak to zaimplementowałeś u siebie. Na szybko ściągnąłem ten router, użyłem kodu z przykładu i działa poprawnie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Skoro wyświetla się jakikolwiek wynik, nawet pusty, to znaczy, że żądanie leci przez router (IMG:style_emoticons/default/smile.gif) Pokaż jak to zaimplementowałeś u siebie. Na szybko ściągnąłem ten router, użyłem kodu z przykładu i działa poprawnie. Użyłem kodu z przykładu (patrz pierwszy post). Wiem że wszystko leci jak powinno lecz nie wiem jak się odnieść do zdefiniowanego url. W przykładzie jest "/user" a gdy ja próbuje otworzyć url "http://localhost/projekt/xxx/user" to pokazuje 404 nie znaleziono. Więc jak działa ten ruter z np: parametrami po pytajniku lub z "/user/id/name" |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
dodaj RewriteBase /projekt/xxx/ po RewriteEngine on
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Gdy wpisze adres: "http://localhost/projekt/xxx/user/12" To ten kod przerzuca mnie do localhost root czyli "localhost/dashboard" Z tego co rozumiem to ten kod:
Tworzy dwa adresy np: http://localhost/projekt/xxx/user/12 http://localhost/projekt/xxx/user/12/kamil Niestety nie działa mi to prawidłowo i nie wiem czemu. Ten post edytował MESSIAH :) 31.08.2015, 17:14:50 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Nie działa ponieważ w $_SERVER['REQUEST_URI'] zapewne znajduje się taki adres: projekt/xxx/user/12, a router oczekuje takiego: user/12 (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Kolego jesteś geniuszem !
Trzymaj pomógł. Mam pytanie czemu autor o tym nie wspomniał? Gdy już wszystko działa jak należy to co powinienem teraz zrobić? Na mój rozum to chyba powinienem zrobić obsługę switch i odwołać je do pliku:
jak waszym zdaniem powinno to wyglądać? Czy nie będzie to kolidować z logiką? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Autor o tym nie wspomniał bo zapewne założył (co jest z resztą logiczne), że router będzie wykorzystywany w głównym katalogu (IMG:style_emoticons/default/smile.gif) W przypadku użycia jakiegokolwiek routera w podkatalogach, trzeba brać pod uwagę to, że w adresie znajduje się jeszcze dodatkowo ścieżka do katalogu, w którym jest skrypt.
Nie wiem jak inni, ale ja robię tak, że w routerze odczytuję tylko informację takie jak kontroler, akcja oraz jakieś dodatkowe parametry, a gdzieś dalej na podstawie tego ładuję odpowiedni plik oraz wywołuję klasę i metodę - o ile istnieją. Jeśli nie to jest ładowana strona błędu lub jakaś inna domyślna. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 11:29 |