Mam spory problem z przesyłanymi danymi z formularza metodą GET. Po pierwsze nie mogę w ogóle ustawić pod niego pliczku .htaccess, dwa nie działa mi paginacja, jak klikam następny to tablica z wyszukanymi elementami jest pusta :O
Jakieś kody przeklej może? Czemu nie możesz ustawić regułek rewrite (zakładam, że o to Ci chodzi) - co chcesz osiągnąć, jakieś przykładowe adresy.
<form action="/szukaj" method="get" id="szukaj">
<input type="search" size="40" maxlength="46" name="szukaj" required />
<input type="submit" value="" id="button" />
</form>
RewriteRule ^szukaj$ szukaj.php [L]
RewriteRule ^szukaj/([a-z]+)$ szukaj.php?szukaj=$1 [QSA,DC]
chcę osiągnąć taki link:
/szukaj/szukane_slowo
a dostaje taki link:
szukaj?szukaj=szukane_slowo
Może trzeba z flagi się pobawić ?
Kliknę następny, zmienia mi adres na:
/szukaj?page=2
i nie śmiga skrypt
wyszukiwanie z post to jeszcze - ale nie można nikomu linka wysłać do wyników wyszukiwania. ABSOLUTNIE nie używaj sesji!
Logiczne, że w formularzu masz wyszukiwanie jako parametry po pytaniku, nie możesz w formie zdefiniować sposobu przekazywania pól formularza inaczej (chyba, że javascriptem).
Możesz zrobić w .htaccess przekierowanie (redirect) z:
/szukaj?szukaj=fraza
na
/szukaj/fraza
co do paginacji - możesz przekazywać więcej niż 1 parametr. w URL parametry zaczynają się od znaku pytajnika, a kolejne są dodawane poprzez znaczek &, czyli np.
szukaj.php?szukaj=fraza&page=2
Natomiast martwi mnie to, że sugerujesz, że nie masz pojęcia co robi "skrypt paginacji" - wziąłeś jakiś przykład skądś, ale nie wiesz jak działa i w efekcie nie potrafisz go umieścić w realiach Twojego kodu.
RewriteRule ^szukaj/([a-z]+)$ szukaj.php?szukaj=$1 [QSA,DC]
-- to jest słabe. można szukać literek a-z.
Lepsze by było:
RewriteRule ^szukaj/([^\?]+) szukaj.php?szukaj=$1 [QSA,DC]
edit: generalnie zdaje się, że za bardzo gnasz nie zastanawiając się co kod robi. potem lekka rozbudowa i widzisz jedno wielkie WTF?
Powinieneś przysiąść nad regexpami, dowiedzieć się jak działają formularze, z czego składa się URL, poczytać o mod_rewrite, przekierowaniach, przemyśleć porządnie jakieś kody do paginacji, musisz być ŚWIADOMY co robi Twój kod.