Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa MyMenuGen, Problem z polskimi znakami
ravczy
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 18.05.2003

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


WItam,

Zainteresowałem się klasą MyMenuGen, (http://www.phpclasses.org/browse/package/3778.html) która generuje automatycznie menu rozwijane. Używa PHP i MySQL. Największy problem sprawiają mi polskie znaki w menu. Wpisując np. Strona główna pojawiają się krzaczki, natomiast w bazie danych wartość ta zapisuje się następująco:

Strona główna

Klasa przedstawia się bardzo obiecująco. Panel administracyjny pozwala na dodawanie nowych pozycji do bazy. Chciałem to wykorzystać w moim projekcie, lecz przeszkodą są te polskie znaki.

Może ktoś z was zna inną klasę która działa by podobnie lub zetkną się z MyMenuGen i potrafi mi pomóc.

Pozdrawaim
Ravczy


Pod tym linkiem http://lesinski.biz/projekty/menu/example2.php każdy może potestować ten skrypt i sprawdzić jego działanie. Może się ktoś do niego przekona i pomoże w rozwiązaniu problemu smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Spróbuj na samym początku zaraz po podłączeniu do bazy wykonwywać zapytanie:
  1. SET NAMES utf8;


Bo prawdopodobnie działa ona teraz na latin2. Problem w tym, że w swoich projektach będziesz musiał zrezygnować z kodowania ISO na rzecz UTF-8.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
ravczy
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 18.05.2003

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


w dokumencie XHTML mam zdeklarowany język polski oraz kodowanie utf-8. Dodałem SET NAMES utf-8, ale to niestety nie pomaga. Faktycznie jest coś na styku przeglądarka a baza danych.

Dziwne jest to co pojawia się w bazie danych, czyli znaki typu :

śąś

zamiast

śąś

zawsze poawialy się znaki zapytania, albo coś w tym stylu. Wałczę z tym już kilka godzin i nadal bezskutecznie.

Zauważyłem też jedną rzecz. Jeśli dane zmienie z PHPMYADMIN to polskie znaki się ładnie wyświetlają. Jeżeli chociażby dokonam edycji danych przez formularz na stronie, to znaki znowu się posypują i pojawiają się znaczki.


Pod dłuższym czasie doszedłem do wniosku, że to nie wina kodowania po stronie MySQL ani PHP. Okazało się, że autor klasy użył funkcji html_entity_decode, co powodowało dziwne zachowanie całości kodu.
Przy metodzie $myMenu->generateMenuStructure autor nie użył tej funkcji i stąd cały problem. Wystarczyło wywołać metode poprzez html_entity_decode($myMenu->generateMenuStructure(), ENT_QUOTES); i wszystko gra smile.gif

w example.php w lini około 94 trzeba użyć też html_entity_decode($myMenu->menu_title, ENT_QUOTES);

Pozdrawaim
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: 22.08.2025 - 03:55