Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] brak polskich znaków (GET)
Forum PHP.pl > Forum > PHP
yarek12
Witam, pobieram dane z linku za pomocą metody GET i nie widzi mi polskich znaków, jest jakiś sposób na kodowanie tego?
drPayton
Polskie znaki masz w GET'ie? W pasku adresu?

Oj, nie radzę... Albo, jeśli to możliwe zastąp je łacińskimi odpowiednikami (ą => a), albo zapisuj w kodowanej postaci, np base64...
toaspzoo
('Content-type: text/html; charset=utf-8');
w nagłówku php
tehaha
http://php.net/manual/en/function.urlencode.php i urldecode()
yarek12
Świetnie, pozbywam się polskich znaków.
Ale ja korzystam z mod_rewite, i tylko jak w linku pojawi mi się % to nie znajduje strony
tehaha
1.nie pozbywasz się tylko są przesłane w innej formie
2.no to zmień regułę
yarek12
"1" - pozbywam się w linku
"2" - wiele mi to nie mówi. - coś więcej?
tehaha
1. jeżeli użyjesz urlencode() to możesz sobie przesyłać polskie znaki jak chcesz, chociaż osobiście też zawsze usuwam wszystkie znaki specjalne z linku
2. napisałeś, że po pojawieniu się w linku % strona nie jest znajdywana to znaczy, że reguła mod_rewrite jej nie akceptuje, jak mam Ci powiedzieć coś więcej skoro nie mam pojęcia jak wygląda Twój skrypt i jak to wszystko jest zrobione, pewnie masz jakąś regułkę która akceptuje znaki alfanumeryczne czyli pewnie coś takiego: ([0-9A-Za-z]) to możesz po prostu dorzucić znak % ([0-9A-Za-z%])
yarek12
  1. RewriteRule ^start,szukaj-([^-]+)$ index.php?tags=$1 [L]
tehaha
reguła jest ok, będzie działać dopóki we wstawionym parametrze nie będzie myślnika -
yarek12
wstawiony parametr jest taki: %B6%E6%E6, czyli bez myślnika - a nie działa.
Pawel_W
zamień regułę na taką
Kod
RewriteRule ^start,szukaj-(.+)$ index.php?tags=$1  [L]

i powiedz, czy działa
yarek12
nie działa
Pawel_W
to masz coś w skrypcie zrąbane, zrób print_r z $_GET smile.gif
drPayton
Co ma skrypt do rzeczy, skoro żądanie do niego nawet nie dochodzi? Rewrite nie matchuje tego...
Mam analogiczną sytuację, walczę z tym od dawna, do tej pory bez rezultatów... wstydnis.gif
Mój rewrite to kopiuj-wklej ten z ZF:
Kod
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Tu też parametry, po przepuszczeniu przez urlencode powodują, że rewriter przestaje matchować ^^
yarek12
Nic nie skutkuje
nekomata
Cytat
wstawiony parametr jest taki: %B6%E6%E6, czyli bez myślnika - a nie działa.

Cytat
nie działa

Cytat(yarek12 @ 17.06.2011, 22:19:17 ) *
Nic nie skutkuje
Z takim nastawieniem powodzenia w znalezieniu pomocy , powinieneś jej (pomocy) poszukać u wróżki , magicznej kuli , żabiego skrzeku i rozmaitych jasnowidzów .
yarek12
problem w tym, że szukałem już w necie, miałem już inną alternatywę.
Ale spróbowałem jeszcze zapytać na forum, często ktoś pomorze.

nekomata - czuje, że jesteś z tych gości co za pomoc uważają "google nie gryzie".
przykład, przychodzi klient do sklepu i pyta się "jak się tego używa" - sprzedawca gogle nie boli... z takim nastawieniem powodzenia w szukaniu pomocy... Dziękujemy zapraszamy ponownie

toaspzoo
Cytat
na forum, często ktoś pomorze.


exclamation.gif exclamation.gif exclamation.gif exclamation.gif exclamation.gif
Pawel_W
ja niestety małopolska wink.gif
tehaha
Cytat
problem w tym, że szukałem już w necie, miałem już inną alternatywę.
Ale spróbowałem jeszcze zapytać na forum, często ktoś pomorze.

nekomata - czuje, że jesteś z tych gości co za pomoc uważają "google nie gryzie".
przykład, przychodzi klient do sklepu i pyta się "jak się tego używa" - sprzedawca gogle nie boli... z takim nastawieniem powodzenia w szukaniu pomocy... Dziękujemy zapraszamy ponownie


Kompletnie nie zrozumiałeś aluzji...Chodzi o to, że nie podałeś żadnych rzeczowych informacji, nie dałeś żadnego kawałka kodu który mogły by pomóc w zlokalizowaniu błędu, nie podałeś także żadnych linków przez jakie próbujesz wchodzić tylko jakiś mały kawałeczek %B6%E6%E6, napisałem Ci, że sprawdziłem tą regułę htaccess i że taki link jak podałeś przechodzi i że problem leży gdzie indziej , Pawel_w poprosił Cię o zrzut $_GET też to olałeś, zachowałeś mentalność poirytowanego dzieciaka.

Krótko mówiąc: tutaj jest dużo ludzi chętnych do pomocy ale jak Ty masz to gdzieś to my tym bardziej.
drPayton
1. Jaki $_GET, skoro żądanie nie dociera do pliku (nie jest przekazywane przez rewritera w htaccess'ie), co było wyraźnie tłumaczone!
2. Nie "mały kawałeczek" tylko konkret: "%B6%E6%E6"

Proszę: http://adres.jakis.pl/%B6%E6%E6

I się wykłada w postaci 404 serwerowego.

Wstaw sobie dowolny adres, z dowolnymi parametrami, i gdziekolwiek w tymże adresie wstaw te krzaki - rewriter: kaput...

Nie wiem jak autor, ale ja bardzo chętnie podam więcej szczegółów, ino nie wiem co Wam potrzebne.
PHP nie ma tu nic do rzeczy, temat powinien zostać przeniesiony do działu "Serwery WWW"...


Podam konkretniejszy przykład. Robiąc/testując zabezpieczenie przed XSS wpisałem sobie w formularzu wyszukiwarki:
Kod
"><script>alert(\'tadam!\')</script>"


W adres idzie to w postaci przetworzonej przez urlencode:
Kod
%22%3E%3Cscript%3Ealert('tadam!')%3C%2Fscript%3E%22


Efekt jest taki, że serwer wyrzuca piękną 404'kę.

Raz jeszcze htaccess (z ZF):
Kod
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]



Kolejny edit:
Kod
%2F
to slash
jak podam
Kod
adres//
- działa
Kod
adres/%2F
- nie 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.