Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mod_rewrite] Formularz GET i przekierowanie
Walian
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Mam na stronie paginator składający się z linków oraz mini formularza typu:
Kod
Strona: [pole] [przycisk]

Dzięki czemu użytkownik może przeskoczyć do dowolnej strony.
Gdy wciśnie przycisk jest kierowany do:
Kod
article.php?name=nazwa_artykulu&page=5

Chciałbym aby w pasku adresu był link:
Kod
artykuly/nazwa_artykulu/strona-5/


Mam do tej pory zrobione przekierowanie z linków <a></a>:
Kod
artykuly/nazwa_artykulu/strona-5/

do skryptu:
Kod
article.php?name=nazwa_artykulu&page=5

gdzie w pasku adresu wciąż widnieje:
Kod
artykuly/nazwa_artykulu/strona-5/

które działa doskonale, niestety nie wiem jak zrobić by "przyjazne linki" działały również dla formularzy.

Kombinowałem z {QUERY_STRING} ale nawet nie wiem czy mam właśnie tego użyć, poza tym nie udało mi się uzyskać pożądanego efektu.

Zapomniałem napisać, że rozwiązałem to za pomocą kodu w JS, ale czy naprawdę nie ma żadnego sposobu by zrobić to bez JS? Może jakiś inny moduł do Apache?



I osobna sprawa, czy jest możliwość stworzenia odpowiedniego zestawu reguł by mod_rewrite kierował z adresów:
Kod
plik/wartosc_zmiennej1/wartosc_zmiennej2/wartosc_zmiennej3/wartosc_zmiennej4/wartosc_zmiennej5/
plik/wartosc_zmiennej1/wartosc_zmiennej2/wartosc_zmiennej3/wartosc_zmiennej4//
plik/wartosc_zmiennej1/wartosc_zmiennej2/wartosc_zmiennej3//wartosc_zmiennej5/
plik/wartosc_zmiennej1/wartosc_zmiennej2//wartosc_zmiennej4/wartosc_zmiennej5/
plik/wartosc_zmiennej1//wartosc_zmiennej3/wartosc_zmiennej4/wartosc_zmiennej5/
plik//wartosc_zmiennej2/wartosc_zmiennej3/wartosc_zmiennej4/wartosc_zmiennej5/
plik/wartosc_zmiennej1/wartosc_zmiennej2/wartosc_zmiennej3///

odpowiednio do:
Kod
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2&zmienna3=wartosc_zmiennej3&zmienna4=wartosc_zmiennej4&zmienna5=wartosc_zmiennej5
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2&zmienna3=wartosc_zmiennej3&zmienna4=wartosc_zmiennej4
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2&zmienna3=wartosc_zmiennej3&zmienna5=wartosc_zmiennej5
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2&zmienna4=wartosc_zmiennej4&zmienna5=wartosc_zmiennej5
plik.php?zmienna1=wartosc_zmiennej1&zmienna3=wartosc_zmiennej3&zmienna4=wartosc_zmiennej4&zmienna5=wartosc_zmiennej5
plik.php?zmienna2=wartosc_zmiennej2&zmienna3=wartosc_zmiennej3&zmienna4=wartosc_zmiennej4&zmienna5=wartosc_zmiennej5
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2&zmienna3=wartosc_zmiennej3

?
Jeśli tak to jak to zrobić?

Ten post edytował Walian 25.02.2010, 01:15:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
które działa doskonale, niestety nie wiem jak zrobić by "przyjazne linki" działały również dla formularzy.

Cytat
Zapomniałem napisać, że rozwiązałem to za pomocą kodu w JS, ale czy naprawdę nie ma żadnego sposobu by zrobić to bez JS? Może jakiś inny moduł do Apache?

Nie da się. Zostaje wyłącznie JS albo sprawdzanie QUERY_STRING w RewriteCond, aby przekierować na daną podstronę na podstawie danych z formularza. Ale najlepiej byłoby to po prostu przeprojektować...

Cytat
I osobna sprawa, czy jest możliwość stworzenia odpowiedniego zestawu reguł by mod_rewrite kierował z adresów:
Kod

Nie rozumiem?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Walian
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Cytat("erix")
Ale najlepiej byłoby to po prostu przeprojektować...

Na przykład jak?

Cytat("erix")
Cytat("Walian")
I osobna sprawa, czy jest możliwość stworzenia odpowiedniego zestawu reguł by mod_rewrite kierował z adresów:
Kod

Nie rozumiem?

Chodzi o to, że w wyszukiwarce nie zawsze użytkownik wypełni wszystkie pola - wtedy poprzez GET zostaną przesłane puste zmienne. Tak więc jeśli użyję JS i użytkownik wypełni tylko jedno pole (w tym przykładzie - drugie), to powstanie link:
Kod
plik//wartosc_zmiennej2////

I jak teraz napisać regułę, która przekieruje do:
Kod
plik.php?zmienna2=wartosc_zmiennej2

lub ew. do:
Kod
plik.php?zmienna1=&zmienna2=wartosc_zmiennej2&zmienna3=&zmienna4=&zmienna5=
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tak więc jeśli użyję JS i użytkownik wypełni tylko jedno pole (w tym przykładzie - drugie), to powstanie link:

To napisz skrypt taki, który po prostu nie doda pustych wartości do linka. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Walian
post
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Chyba nadal nie rozumiesz o co mi chodzi.
No mogę zrobić, że nie doda pustych wartości, tylko skąd wtedy mod_rewrite ma wiedzieć do jakiego linku przekierować tongue.gif?
Bo jeśli powstanie:
Kod
plik/wartosc/wartosc/

To ma przekierować do:
Kod
plik.php?zmienna1=wartosc_zmiennej1&zmienna2=wartosc_zmiennej2

a może do:
Kod
plik.php?zmienna3=wartosc_zmiennej3&zmienna5=wartosc_zmiennej5

a może do jeszcze innej kombinacji tongue.gif ?

Wiem, że mogę to zrobić np. tak:
Kod
plik/Nazwa-wartosc/Opis-wartosc/

i wtedy da radę napisać odpowiednią regułkę, która będzie wiedziała "co do czego", ale to wieśniacko wygląda ;/

A postać:
Kod
plik//wartosc////

jest czytelna dla użytkownika - wie, że wypełnił tylko drugie pole.

Skumałeś smile.gif?
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Tak - wtedy nie rób tego przez htaccess, tylko router w skrypcie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Walian
post
Post #7





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


Chodzi Ci o to co zaproponował qlash w tym wątku:
http://forum.php.pl/lofiversion/index.php/t58446.html
?
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://www.phpaddiction.com/tags/axial/url...h-php-part-one/


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 21.08.2025 - 03:39