Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rozróżnienie, która zmienna w $_GET pochodzi z mod_rewrite
Forum PHP.pl > Forum > PHP
MatKus
Witam
czy jest może jakiś sposób, żeby dowiedzieć się, która zmienna z $_GET pochodzi z mod_rewrite?
przykładowo mam adres strony:
http://example.com/wartosc1/wartosc2/?para...param4=wartosc4

co jest równoznaczne wywołaniu
http://example.com/index.php?param1=wartos...param4=wartosc4

czy da się rozróżnić, że param1 i param2 są z mod_rewrite, a param3 i param4 nie?


O co mi chodzi tak na prawdę:
Otóż mamy dajmy na to adres
http://jakis_sklep.pl/kategoria/12/jakis+opis
i tam chcę dodać paginację. Może więc to wyglądać tak:
http://jakis_sklep.pl/kategoria/12/jakis+opis?strona=2
ale chciał bym zrobić w miarę uniwersalnie ten system paginacji, więc może być równie dobrze adres:
http://jakis_sklep.pl/koszyk?strona=2
http://jakis_sklep.pl/polecane/produkty?co...=1&strona=2
http://jakis_sklep.pl/polecane/produkty?st...=2&cośtam=1

itd.
muszę więc pobrać adres bieżący, ale bez numeru strony, bo ten dopiero dopiszę
do tej pory robiłem po prostu
$adres='http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

ale teraz z adresu muszę usunąć jeden parametr tak, żeby reszta adresu pozostała niezmieniona.
mogę niby zrobić foreach na $_GET, ale wtedy adres nie będzie taki ładny, jak był, bo nie wiem, czy zmienna poszła z mod_rewrite, czy nie. gdybym to wiedział, zrobił bym
$adres='http://'.$_SERVER["SERVER_NAME"].$_SERVER['REDIRECT_URL'].pozostałe_zmienne_z_get;

Robił ktoś może coś podobnego? Był bym bardzo wdzięczny za nakierowanie mnie.
!*!
Za bardzo kombinujesz i chyba nie rozumiesz do czego m_r służy. Zrób to normalnie przez GET i podczep pod to m_r. Bez żadnych udziwnień w stylu http://jakis_sklep.pl/kategoria/12/jakis+opis?strona=2 tylko http://jakis_sklep.pl/kategoria/12/jakis+opis/2
Crozin
Musiałbyś skorzystać z własnego mechanizmu przepisywania URL-i (mógłbyś skorzystać na przykład z komponentu Routing Symfony), który pozwoliłby nie tylko na odczytanie docelowego zasobu, ale również na wygenerowanie odpowiedniego URL-a.
MatKus
Cytat(!*! @ 14.05.2012, 11:57:13 ) *
Za bardzo kombinujesz i chyba nie rozumiesz do czego m_r służy. Zrób to normalnie przez GET i podczep pod to m_r. Bez żadnych udziwnień w stylu http://jakis_sklep.pl/kategoria/12/jakis+opis?strona=2 tylko http://jakis_sklep.pl/kategoria/12/jakis+opis/2

to nie takie proste, bo teraz z adresu i tak musiał bym usuwać numer strony, bo inaczej dostane adresy typu
http://jakis_sklep.pl/kategoria/12/jakis+opis/1/2/3/4/5/6/7/ gdy use będzie przełączał stronę.
A jako, że paginacja jest wykorzystywana w wielu miejscach a chcę, żeby wyglądała tak samo, to chciałem zrobić funkcję uniwersalną do której przekazujesz tylko ilość elementów, a ona zwraca cały gotowy HTML paginacji. Tyle, że do tego celu musi ta funkcja znać bieżący adres.

No ale trudno, będę główkował dalej i coś wymyślę
!*!
Skoro masz adres http://jakis_sklep.pl/kategoria/12/jakis+opis to oczywiste że będzie to prowadziło do produktu czy czego tam chcesz, a jak masz http://jakis_sklep.pl/kategoria/12/jakis+opis/1 to oczywiste że będzie to paginacja. Nie rozumiem w czym problem. Jak chcesz sprawdzić czy m_r jest włączone użyj apache_get_modules() i na tej podstawie generuj link z i bez m_r
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.