Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]$_GET, mod_rewrite, adres url, header()
Forum PHP.pl > Forum > Przedszkole
kleszczoscisk
Witam

Mam na stronie formularz wyszukiwania, gdzie przekazuję w zmiennej $_GET['q'] słowo kluczowe.
Na stronie z wynikami mam kod, który tworzy na stałe adresy url wyników wyszukiwania w rodzaju:
Cytat

Problem w tym, że nie umiem utworzyć takiego adresu jak wyżej dla słowa które wyszukuję po raz pierwszy. Tworzy się adres:
Cytat

Domyślam się, ze będzie potrzebne zdefiniowanie nagłówka header() i przekierowanie na już przepisany adres:
Kod
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://127.0.0.1/szukaj,'.urlencode($_GET['q']).','.(int)$_GET['str'].'.html');

Niestety otrzymuję komunikat:
Cytat
Nieprawidłowe przekierowanie
Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.
* Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek.
sazian
tak raczej nie pójdzie
dlatego że roblisz takie przekierowanie
szukaj.php?q=słowokluczowe&str=1 => szukaj/słowokluczowe,1.html a to przez mod_rewrite jest ponownie przerabiane na szukaj.php?q=słowokluczowe&str=1 i kółeczko się zamyka winksmiley.jpg

spróbuj zmienić w formularzu get ta post i dać przekierowanie z post na przyjazny link
kleszczoscisk
Dzięki...
Kod
if(isset($_POST['str']) AND isset($_POST['q'])){
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: szukaj,'.urlencode($_POST['q']).','.(int)$_POST['str'].'.html');
$_GET['str'] = $_POST['str'];
$_GET['q'] = $_POST['q'];
}


Tak działa.
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.