Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Routing, url's i żądanie get
szubi95
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 3.06.2012

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


Witam wszystkich!


Ostatnio zacząłem pisać mały routing. Napotkałem na dwa małe problemy(mianowicie związane z wysyłaniem parametrów getem), i nie wiem co z tym do końca zrobić. Wszystko jest oparte na path_info.


Przykładowo mam taki adres:

http://localhost/admin/users/show/5 ->path_info

W momencie wysłania formularza getem mam coś takiego:

http://localhost/admin/users/show/5/?param=4

I teraz choćby, jak temu zaradzić,a mianowicie, żeby żądanie wyglądało tak po wysłaniu formularza:

http://localhost/admin/users/show/5/4


Drugi problem:

Tak wyglądają tablice z danymi:



array(1) {
["param"]=>
string(1) "4"
}

array(4) {
[0]=>
string(5) "admin"
[1]=>
string(5) "users"
[2]=>
string(4) "show"
[3]=>
string(6) ":param"
}

array(4) {
["module"]=>
string(0) ""
["controller"]=>
string(5) "users"
["action"]=>
string(4) "show"
["params"]=>
array(1) {
[1]=>
string(1) "5"
}
}


Pierwsza to get, druga to path_info(a raczej zdefiniowany przeze mnie adres w tablicy $_routes), a trzecia to wyjściowa, która poleci do PageControllera. Nie wiem, czy mam połączyć path_info z takim getem, czy można jakoś inaczej to obejść. Wyszukiwanie odpowiednich adresów opiera się wyłącznie na tym co zawiera path_info(w momencie otrzymania jakiegoś parametru adres nadal będzie pasował, a według mnie nie powinien i dlatego myślę o połączeniu, żeby była sprawdzana całość a potem klasa Request i tak dostanie to co jej będzie potrzebne - żądanie).

Z drugiej strony w przypadku takiego połączenia i wyszukiwania adresów klucze geta nie będą mnie kompletnie interesowały(czyli wyciągam tylko wartości i resztę usuwam i to jest dla mnie trochę dziwne bo to oznacza w zasadzie, że klucze mogą być dowolne:

http://localhost/admin/users/show/5/?PARAM=4

Ewentualnie klucz ten będzie oznaczał klucz w tabeli definiowania trasy,a ta jedynka pierwszy index tablicy $_GET:


  1.  
  2. <?php
  3.  
  4. $router = new Router();
  5.  
  6. $router->add(
  7. '/admin/users/show/:param',
  8. 'controller' => 'users',
  9. 'action' => 'show',
  10. [b]'PARAM' => 1[/b]
  11. )
  12. );
  13.  


Ma ktoś może jakiś pomysł?


Pozdrawiam,
szubi
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 18:08