Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rozróżnienie, która zmienna w $_GET pochodzi z mod_rewrite
MatKus
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


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


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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.
Go to the top of the page
+Quote Post
MatKus
post
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 3
Dołączył: 27.08.2008

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


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ę
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


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


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 14:18