Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Method Get & htaccess
Forum PHP.pl > Forum > PHP
Michael2318
Witam!

Muszę wysłać formularz metodą GET i zrobić to tak, aby link automatycznie przeobraził się w ten 'przyjazny', jednak trochę mi to nie wychodzi.
Link po kliknięciu submita wygląda tak:
Cytat
file.php?search_category=3&search_province=0&search_city=Miasto&search_phrase=Fraza&submit=Szukaj


A linijka w .htaccess tak:
Cytat
RewriteRule ^cat-([0-9]+),woj-([0-9]+),([a-zA-Z0-9]+),([a-zA-Z0-9]+),([a-zA-Z0-9]+)/?$ file.php?search_category=$1&search_province=$2&search_city=$3&search_phrase=$4&submit=$5 [L]


Może mnie ktoś nakierować na błąd w powyższych zapisach?

Dzięki! smile.gif
SmokAnalog
Obawiam się, że to nie jest możliwe w taki sposób. Mod rewrite nie działa w taki sposób, że z brzydkiego URL-a robi ładny. On robi rzecz odwrotną, tj. ładny URL interpretuje tak samo, jakby był brzydkim. Masz do wyboru dwie możliwości:
  • Zrobić to w JavaScripcie - wysyłanie formularza przekierowałoby do ładnego URL-a
  • Zrobić skrypt PHP, który przekierowałby odpowiednio do ładnego URL-a
Michael2318
Cytat
Zrobić skrypt PHP, który przekierowałby odpowiednio do ładnego URL-a


Myślałem o tym, aby przesłać dane w $_POST np. do searching.php, tam je sprawdzić i header("location: ladny/url"); tylko zastanawiam się właśnie czy to jest dobre podejście do problemu.

EDIT:

Kolejnym problemem jest fakt, że jeśli w url wygląda tak: cat-3,woj-4,Kraków to htaccess sobie nie radzi i wypluwa 404. Jest jakiś sposób na polskie ogonki w htaccess? ;>
SmokAnalog
Oczywiście - dzieje się tak dlatego, że wzorzec [a-zA-Z0-9] wyłapuje jedynie litery alfabetu łacińskiego oraz liczby. Zastąp go wzorcem [^,], czyli wszystkim, co nie jest przecinkiem.
!*!
Cytat
tylko zastanawiam się właśnie czy to jest dobre podejście do problemu.

To zależy czy wyszukiwarka ma być indeksowana i działać na zewnątrz wink.gif

Zapoznaj się z http://us2.php.net/manual/en/reference.pcr...n.modifiers.php

Cytat
'/^\p{L}+$/ui'


ps. "Method" z pewnością ma odpowiednik w Naszym języku wink.gif

Cytat
Zastąp go wzorcem [^,], czyli wszystkim, co nie jest przecinkiem.

ohmy.gif
SmokAnalog
Cytat(!*! @ 22.11.2013, 09:29:54 ) *

Jaki to ma związek z tematem?

EDIT

Rzeczywiście jest coś takiego jak \p{L} - nigdy wcześniej o tym nie słyszałem. Zatem jest to lepsze rozwiązanie niż wszystko inne niż przecinek.
Michael2318
Cytat(SmokAnalog @ 22.11.2013, 09:33:43 ) *
\p{L}


Możecie mi podać jakąś stronę, gdzie są przykłady z zastosowaniem tego? Bo nie mogę sobie poradzić z zastosowaniem tego u siebie.
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.