Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Polskie znaki z $_GET
Poker
post
Post #1





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Witam serdecznie,

Mam problem z którym męczę się od wczoraj i nie ma żadnych efektów.

Więc tak, do $_GET'a wrzucam sobie tytuł podstrony (dla przykładu podam : http://technologie.gazeta.pl/internet/1,10...t_Intela_.html)

W pasku pojawia mi się "Apple%20zastrzega%20%B3%B1cze%20Thunderbolt%20Intela?"

Gdy robię sobie
Kod
<?php echo $_GET['tytul']; ?>


Wyświetla mi: Apple zastrzega łącze Thunderbolt Intela?

Zaś po dodaniu do bazy danych mam: Apple zastrzega ??cze Thunderbolt Intela?



Kolejny problem jaki zauważyłem jest taki że pobierając tytuły stron, raz w $_GET mam coś takiego "Apple%20zastrzega%20%B3%B1cze%20Thunderbolt%20Intela" a pobierając z innej strony pojawiają mi się normalne polskie znaki i nie wiem od czego to zależy?
Czy od kodowania samej strony?

Oczywiście tytuły podstron nie są pobierane z mojego serwisu, pobieram tytuły z serwisów gdzie umieszczone są różne obrazki np wp.pl, gazeta.pl, by później te obrazki wyświetlać u siebie i jako tytuł obrazka chciałbym ustawiać właśnie tytuł tejże podstrony.

Pomożecie? Bo już sobie nie radzę.

Kodowanie bazy, plików jest poprawne Bo raz się dodaje a raz nie smile.gif

Z mojego dochodzenia wychodzi że problem leży właśnie w tych adresach : "Apple%20zastrzega%20%B3%B1cze%20Thunderbolt%20Intela" których nie potrafię ładnie podmienić na z polskimi znakami.

Kombinuję z wieloma funkcjami w manualu niestety nie wiem która jest właśnie do czegoś takiego i czy w ogóle taka jest, na chwile obecną nic nie działa.


--------------------
:) na miliony przyjdzie czas...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ixpack
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Przyklejony Topic - o polskich znakach //edit - nie doczytałem wink.gif

Ponad to - kod skryptu pokaż wink.gif pewnie jest gdzieś pominięte _urldecode() albo encode() ? utf8_decode()?

Ten post edytował ixpack 10.03.2011, 13:19:17


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
Poker
post
Post #3





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Cytat(ixpack @ 10.03.2011, 13:14:58 ) *
Ponad to - kod skryptu pokaż wink.gif pewnie jest gdzieś pominięte _urldecode() albo encode() ? utf8_decode()?


Jak stosuje urlencode() to owszem wszystko mi się zamienia wtedy na te znaki ł -> %B3 spacja-> +

Potem robię urldecode() i mam ten sam wynik jaki otrzymuję bez dodawania urlencode()


Nie rozumiem czemu jak pobieram tytuł z podstrony: http://fashionelka.pl/pasiasty-plaszcz-i-welniany-komin/ w GET mam ładne polskie znaczki i jak dodaję do bazy to zapisują się one.

A z niektórych stron jak doda mi się tytuł do GET'a to wtedy pojawiają się te %B3 %20, skąd to się bierze?


nie ma sensu pokazywać skryptu bo nie stosuję żadnej podmiany tych znaków na razie ponieważ i tak nic nie działa...



Ten post edytował Poker 10.03.2011, 13:37:31


--------------------
:) na miliony przyjdzie czas...
Go to the top of the page
+Quote Post
ixpack
post
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Idąc dalej tym tropem... Jakie kodowanie mają "oni" na stronkach?

Nie kodujesz 2krotnie niektórych stringów? Tj. urlencode?

Np:

  1. $string = "bąk to smród";
  2. $encode1 = urlencode($string);
  3. $encode2 = urlencode($encode1);
  4. echo $string.'<hr />';
  5. echo '1 encode = '.$encode1.' 1 decode = '.urldecode($encode1).'<hr />';
  6. echo '2 encode = '.$encode2.' 1 decode = '.urldecode($encode2).'<hr />';
  7. echo '2 encode = '.$encode2.' 2 decode = '.urldecode(urldecode($encode2)).'<hr />';


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
Poker
post
Post #5





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Niestety chyba się nie rozumiemy.

urlencode nie ma u mnie ŻADNEGO znaczenia.

W momencie czy go stosuję lub nie stosuję do bazy dodawany jest ten sam wynik więc to nie ma żadnego znaczenia.


Wygląda to tak:

z gazeta.pl chcę pobrać tytuł podstrony i w GET mam treść z %20%B3%B1 zamiast spacji i polskich znaków (dodając do bazy nie wyświetlają się polskie znaki, zamiast nich są pytajniki)
z fashionelka.pl chcę pobrać tytuł podstrony i w GET mam treśc z polskimi znakami (dodając do bazy poprawnie wyświetlają się polskie znaki)


gdy dane z GET z gazeta.pl (czyli te z dziwnymi znaczkami %20%B3%B1) wyświetlam sobie poprzez echo $_GET['tytul'] na stronie widzę poprawne dane, czyli mimo iż w adresie są znaczki %20%B3%B1 wyświetla mi wszystko poprawnie, dopiero jak dodaję do bazy to nie pojawiają się polskie znaki

Ale nie problem jest z bazą, bo jak dodaję z fashionelka tytuł to tam pojawiają się poprawnie polskie znaki, więc wykluczone jest kodowanie.

I tutaj właśnie to co mnie najbardziej dziwi to to czemu z gazeta.pl w adresie mam te %20%B3%B1 a jak pobierał tytuł z fashionelka to mam normalne poprawne znaki.


Problem polega na tym że te %20%B3%B1 nawet jak zamieniam tym urldecode to i tak to nic nie daje, bo do bazy dodają się te same znaki jak ze zwykłego $_GET['tytul']; dlatego nie stosuję teraz niczego bo u mnie i tak nie ma żadnej różnicy

Kodowania plików mam utf-8 bez bom
baza zakodowana dobrze, bo wszystko pięknie ładnie działa

więc tutaj szukam jakiegoś rozwiązania choć sam nie wiem jakiego bo u mnie to niestety nie działa


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

Tutaj konkretny przykład i różnice jak to wygląda

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

Gazeta.pl

W pasku z adresem mam: Apple%20zastrzega%20%B3%B1cze%20Thunderbolt%20Intela
Jak zrobię sobie echo $_GET['tytul']; czyli to co jest w pasku to widzę : Apple zastrzega łącze Thunderbolt Intela
Jak dodaję tego GETA do bazy danych to w bazie mam: Apple zastrzega ??cze Thunderbolt Intela



Fashionelka

W pasku z adresem mam: Pasiasty płaszcz i wełniany komin
Jak zrobię sobie echo $_GET['tytul']; czyli to co jest w pasku to widzę : Pasiasty płaszcz i wełniany komin
Jak dodaję tego GETA do bazy danych to w bazie mam: Pasiasty płaszcz i wełniany komin



Więc czemu jak z gazeta.pl robię sobie ECHO to mam wynik poprawny ale jak dodaję go do bazy to już nie ma polskich znaczków? I czemu akurat tutaj na tej stronie tak jest, a czemu na fashionelka działa to poprawnie, czym to jest spowodowane że jeden tytuł wyświetla się poprawnie a drugi ma te znaczki?




--------------------
:) na miliony przyjdzie czas...
Go to the top of the page
+Quote Post
ixpack
post
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Pokaż Panie jednak kod odpowiedzialny za te dodawanie do bazy i to jak pobierasz ten tytuł - no nie ma bata, ktoś tu pomoże Ci to rozwiązać. Bo problem jest dziwny...


--------------------
Łatwo jest być odważnym za murami własnego zamku.
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 Aktualny czas: 21.08.2025 - 21:18