Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dekodowanie zmiennych z urla
rafiksq
post 20.04.2017, 22:10:52
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Próbowałem ale się poddałem.
Mam pewien serwis z ogłoszeniami orfin.net.pl i paginacją. Po wybraniu pozycji z wyszukiwarki np. miejscowości z polskimi znakami i kliknięciu szukaj w urlu wyświetlają się z polskimi znakami ale po wybraniu kolejnej strony serwer koduje polskie znaki. Wie ktoś dlaczego ?
http://www.orfin.net.pl/?section=search&am...=Szukaj&a=1

Na lokalnym serwerze wszystko jest ok, na home.pl było ale raptem przestało działać.
Go to the top of the page
+Quote Post
bostaf
post 21.04.2017, 10:08:07
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Ciężko powiedzieć nie widząc kodu, ale...

Mamy do czynienia z dwoma typami URLi:
1. Inicjowane przez formularz wyszukiwania na górze strony przyciskiem "Szukaj"
2. Generowane przez aplikację i pokazany użytkownikowi jako link "następna >>>" na dole strony.

Ten drugi, jak podejrzysz na źródle strony, ma polskie znaki zakodowane. Czyli, że to paginator generując link koduje znaki specjalne (urlencode?).

Pierwszy jest tworzony przez formularz, i wygląda na to, że to co formularz widzi polu <select id="lokalizacje1" name="locations[]" ...> jest żywcem brane przez funkcję przetwarzającą formularz na redirecta. Tak jakby ta funkcja nie kodowała znaków specjalnych.

Gdybym chciał zmienić ten drugi tym URLi, to zacząłbym od sprawdzenia w jaki sposób paginator buduje linki i szukałbym wystąpień funkcji urlencode.

Chociaż z drugiej strony, to nie wyjaśnia dlaczego na localu jest OK a na home.pl nie... chyba, że paginator bierze pod uwagę jakieś ustawienia środowiskowe...

A możesz udostępnić kod paginatora?
Go to the top of the page
+Quote Post
rafiksq
post 21.04.2017, 12:14:21
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Już chyba znalazłem przyczynę ale nie wiem jak naprawić. Otóż:

$skrypt=$_SERVER['QUERY_STRING'].'&';
<a href=\"index.php?".$skrypt."a=$i\" class=\"pasek_wyniki_link\">

klikająć w ten link w url nie ma polskich znaków a są 'krzaki' smile.gif

Jak z linku usunę 'index.php?' albo sam znak zapytania czyli:
<a href=\"index.php?".$skrypt."a=$i\" class=\"pasek_wyniki_link\"> to wszystko działa tzn są polskie znaki ale wiadomo mam 'white page'

Rozwiązane, usunąłem z linku 'index.php' i zostawiłem sam znak zapytania ?zmienna=dddd i działa smile.gif

Ten post edytował rafiksq 21.04.2017, 12:08:22
Go to the top of the page
+Quote Post
nospor
post 21.04.2017, 12:37:47
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie wiem na jakim etapie jest twoj projekt, ale taka rada na przyszlosc:
miniaturka ma byc miniaturka a nie na sile w html/css zmniejszonym oryginalem. Teraz twoja strona wazy ponad 3MB bo ladujesz pelne obrazki w miejsce miniaturek


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rafiksq
post 21.04.2017, 13:41:00
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Cytat(nospor @ 21.04.2017, 13:37:47 ) *
Nie wiem na jakim etapie jest twoj projekt, ale taka rada na przyszlosc:
miniaturka ma byc miniaturka a nie na sile w html/css zmniejszonym oryginalem. Teraz twoja strona wazy ponad 3MB bo ladujesz pelne obrazki w miejsce miniaturek


Tak wiem to też będzie zmienione ale dziękuję za przypomnienie smile.gif
Go to the top of the page
+Quote Post
bostaf
post 23.04.2017, 00:31:08
Post #6





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(rafiksq @ 21.04.2017, 13:14:21 ) *
Rozwiązane, usunąłem z linku 'index.php' i zostawiłem sam znak zapytania ?zmienna=dddd i działa smile.gif


A to zdaje się, że to przez mod_rewrite. Bo on domyślnie zamienia znaki specjalne na kodowane procentowo.
Masz tam w .htaccess albo w konfiguracji virtual hosta coś w rodzaju
Kod
RewriteRule ^index.php ...

?
Gdybyś na końcu dodał flagę NE (tak jak tu w manualu opisane), to powinno hulać z- i bez index.php ...chyba smile.gif
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: 19.06.2025 - 10:23