Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Po przepisaniu adresów problem z wyszukiwarką
adamantd
post 6.02.2013, 21:09:33
Post #1





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Jak w temacie mam problem z wyszukiwarką po przepisaniu adresów tzn. wyszukiwarka działa i przerzuca na stronę z wynikami (na stronie z wynikami cały czas znajduje się możliwość wpisania nowych bądź zmiana obecnych kryteriów wyszukiwania) i w momencie kiedy kliknę szukaj po raz drugi przerzuca mnie na 404. Co dziwne paginacja działa bez problemu na stronie z wynikami wyszukiwania ale ponowne kliknięcie wyszukaj nie działa. Jeszcze dziwniejsze jest to, że kiedy przerzucę na jakąkolwiek inną zakładkę w serwisie i z powrotem wejdę w wyszukiwarkę to działa -oczywiście jeden raz, ponieważ przy drugim kliknięciu bez względu na to czy zmienię parametry wyszukiwania czy nie wywala 404. Spróbowałem w header() który przyrzuca na stronę z wynikami wpisać adres pełny ten, który był przed przepisaniem adresów w htaccess i wszystko działa jak należy... Dlaczego tak się dzieje? Gdzie szukać problemu? Dodam, że w innej wyszukiwarce w tej samej aplikacji, która działa na prawie tej samej zasadzie wszystko gra
Go to the top of the page
+Quote Post
netmare
post 6.02.2013, 22:05:32
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Chyba ciężko wywróżyć bez kodu :/
Go to the top of the page
+Quote Post
adamantd
post 6.02.2013, 22:32:26
Post #3





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Dużo bardzo kodu do wklejenia może trochę streszczę.

Po kliknięciu submit (formularz wyszukiwarki) po całej walidacji i uformułowaniu zapytania do bazy jeśli są wyniki umieszczam same id w postaci tablicy w $_SESSION['question'] oraz przerzucam headerem na strone z wynikami. Tam wyciągam już paginując z bazy danych rekordy o takich id jak w $_SESSION['question'].

Sprawdzałem $_SESSION['question'] i w niej również wszystko gra więc chyba musi chodzić o samo htaccess

  1.  
  2. htaccess:
  3. RewriteRule ^Ogloszenia/Szukaj/?(page,([\d]+))?/?$ index.php?action=ogloszenia&tuck_oglo=show_szuk_oglo&pageviews=$2 [L]
  4.  
  5. przerzucając na stronę z wynikami używam:
  6. header("Location: Ogloszenia/Szukaj");
  7.  


Każdy adres działa mi na tej samej zasadzie i wszystko jest w porządku tutaj jakoś nie....
Go to the top of the page
+Quote Post
netmare
post 6.02.2013, 22:38:31
Post #4





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


rewrite nie znam, ale w header nie powinno być Location: /Ogloszenia/Szukaj ? i na początku rewrite też / ?

edit:
Po krótkim namyśle strzelam: rewrite bym nie ruszał ale location obowiązkowo / na początku.

Ten post edytował netmare 6.02.2013, 22:44:01
Go to the top of the page
+Quote Post
adamantd
post 6.02.2013, 22:47:43
Post #5





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Nie bo przerzuca bezpośrednio na localhost

http://localhost/Ogloszenia/Szukaj

już to kiedyś przerabiałem -nie pamiętam teorii dlaczego tak jest ale ma być bez / i w jednym i w drugim smile.gif

i tak jak mówię -cały htaccess mam w ten sposób napisany i wszystko wszędzie mi działa razem z paginacjami. Ta wyszukiwarka również działa i paginacja też działa, nie działa tylko jak chcę wyszukać coś ponownie nie wiedzieć dlaczego....

Ten post edytował adamantd 6.02.2013, 22:50:31
Go to the top of the page
+Quote Post
netmare
post 6.02.2013, 22:49:37
Post #6





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Pogubiłem się trochę. A co masz w url-u po pierwszym kliknięciu szukaj i drugim? dokładnie to samo?
Go to the top of the page
+Quote Post
adamantd
post 6.02.2013, 22:53:18
Post #7





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Nie -po pierwszym kliknięciu mam :

http://localhost/SportRzePHP1/Ogloszenia/Szukaj

a po drugim:

http://localhost/SportRzePHP1/404.html

i tak jak pisałem wcześniej jeżeli używam adresu header('Location: index.php?action=ogloszenia&tuck_oglo=show_szuk_oglo');

to działa cały czas bez względu na to ile razy sobie wcisnę submit i ile razy bym nie zmienił kryteria wyszukiwania (adres w url jest cały czas ten sam i nie przerzuca mnie na 404)

Ten post edytował adamantd 6.02.2013, 22:53:46
Go to the top of the page
+Quote Post
netmare
post 6.02.2013, 23:01:36
Post #8





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Nie mam teraz gdzie potestować ale jak dla mnie jak stąd zrobisz http://localhost/SportRzePHP1/Ogloszenia/Szukaj header ogłoszenia/szukaj to do rewrite trafi http://localhost/SportRzePHP1/Ogloszenia/S...oszenia/Szukaj/ teraz wykona się jakieś przepisanie i następuje próba wyrenderowania http://localhost/SportRzePHP1/Ogloszenia/S...j/index.php?.... którego nie ma weź przeglądarkę firefox zainstaluj live http headers i sprawdź co próbuje pobrać przeglądarka.

Może Location ../../Ogloszenia/Szukaj
Go to the top of the page
+Quote Post
adamantd
post 7.02.2013, 01:32:30
Post #9





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Wiem o co Ci chodzi ale mam problem z odpaleniem tego dodatku do mozilli. Ogarnę to jutro, dzisiaj chyba nie mam na to już nerwów. Zainstalowałem dodatek ale nie mogę go za cholere włączyć

Rozwiązałem problem nie wiem tylko dlaczego w tej jednej wyszukiwarce właśnie tak musi być kiedy na każdej innej stronie działa inaczej.
Tzn przykładowo:

  1. htaccess strona główna:
  2. RewriteRule ^StronaGlowna/?$ index.php?action=home [L]
  3.  
  4. przeniesienie na stronę główną:
  5. header("Location: StronaGlowna");
  6.  


Żeby działało przeniesienie na stronę wyników w tym jednym przypadku nie mogę użyć:

  1. header("Location: Ogloszenia/Szukaj");
  2.  
  3. tylko całą ścieżkę bez localhosta a na początku slash:
  4. header("Location: /SportRzePHP1/Ogloszenia/Szukaj");
  5.  
  6.  


Dlaczego tutaj jest inaczej niż na innych podstronach?

p.s. mam w headerze znacznik base

  1. <base href="http://localhost/SportRzePHP1/">
  2.  


dzięki czemu wszystko do tej pory działało w porządku

Ten post edytował adamantd 7.02.2013, 01:34:36
Go to the top of the page
+Quote Post
netmare
post 7.02.2013, 08:22:24
Post #10





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Cytat(netmare @ 6.02.2013, 23:01:36 ) *
Może Location ../../Ogloszenia/Szukaj



Cytat(adamantd @ 7.02.2013, 01:32:30 ) *
header("Location: /SportRzePHP1/Ogloszenia/Szukaj");


2,5 godziny poświęciłeś na przepisanie tego samego w wersji nie odpornej na zmianę lokalizacji aplikacji. Czasem się zastanawiam po co ludzie pytają na forum, skoro i tak nie czytają odpowiedzi wink.gif
Go to the top of the page
+Quote Post
adamantd
post 7.02.2013, 13:05:11
Post #11





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


Szczerze mówiąc na forum wrzucam wątek w ostateczności albo czasami z ciekawości smile.gif Ale często po wrzuceniu wątku na forum czekam kilka godzin na jakąkolwiek odpowiedź i zdążę rozwiązać problem sam.. Nie zajęło mi to 2,5 h tylko oglądałem film w tym czasie hehe, później mnie oświeciło -wiesz może dlaczego na jednej podstronie mogę użyć przekierowania w taki prosty sposób jak header('Location: StronaGlowna') a na innej podstronie muszę poprzedzać znakiem \ ? Dlaczego nie działa wszędzie tak samo?

Ten post edytował adamantd 7.02.2013, 13:06:54
Go to the top of the page
+Quote Post
netmare
post 7.02.2013, 13:36:56
Post #12





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

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


Jak wysyłasz location nie poprzedzone niczym to tak jakbyś odwólywał się do ./, jeśli jesteś 127.0.0.1/x i wyślesz location x to poleci do 127.0.0.1/x/x, czemu Ci działa gdzie indziej nie potrafię odpowiedzieć niestety.
Go to the top of the page
+Quote Post
adamantd
post 7.02.2013, 13:46:04
Post #13





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

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


To co napisałeś już rozgryzłem -niestety tamtego jeszcze nie, znacznik <base> mam w headerze a ten sam header jest na każdej z podstron (bo te są przecież wczytywane do index.php) więc powinno działać tak samo wszędzie a jednak tak nie jest -ok mniejsza z tym jak mi jeszcze kiedyś coś nie będzie działać będę wiedział jak kombinować żeby zaczęło
Dzięki za odpowiedzi pozdro
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 Wersja Lo-Fi Aktualny czas: 26.04.2024 - 09:28