![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
Witam
Problem jest następujący brak polskich znaków w wyniku wyszukiwania. kodowanie strony i skryptu: UTF-8 Dane wprowadzone do bazy danych są w utf-8, system porównań bazy danych ustawiony na UTF-8, połączenie z baza danych zostało ustawione aby dane pobierał w utf-8: W całym skrypcie dane z bazy wyświetlane są poprawnie z polskimi znakami. Jedynie podczas wpisania do formularza szukanego słowa które zawiera polskie znaki zostaje zwrócony komunikat że słowo nie zostało znalezione, jednak skrypt wyszukuje słowo bez polskich znaków w bazie. polskie znaki są ignorowane np. wpisując do formularza słowo "żółty" skrypt przeszukuję tylko "ty" bez początkowych 3 polskich znaków. Ma ktoś jakiś pomysł jak rozwiązać ten problem? Szczegóły poniżej: Mam prosty formularz wyszukiwania pojedynczych słów w bazie:
wynik zwracany jest za pomocą następującego kodu:
który odwołuje się do funkcji: get_lookup_results:
funkcje powiązane:
z góry dzięki za pomoc wszystkim dobrym ludziom ![]() czy nikt nie ma pomysłu co morze być przyczyną mojego problemu?? pozdrawiam, Marcin -------------------- Praca IT
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 259 Pomógł: 42 Dołączył: 8.04.2005 Skąd: Mława Ostrzeżenie: (0%) ![]() ![]() |
spróbuj z:
Kod SET character_set_connection = utf8;;
SET character_set_server = utf8;; SET character_set_client = utf8; SET character_set_results = utf8; -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
Niestety ustawiłem te parametry które podałeś przy połączeniu z bazą jednak nadal efekt jest ten sam.
jakieś inne propozycję? może zastosować AGAINST IN NATURAL LANGUAGE MODE, jednak nie bardzo wiem jak to wcisnąć w kod poniżej:
oraz tutaj:
cze poniższe ustawienia bazy danych mogą mieć wpływ na ten problem? ![]() czy jest możliwość zmiany tych ustawień nie mając dostępu do pliku my.cnf? Ten post edytował informatycy 25.11.2009, 14:55:57 -------------------- Praca IT
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź może najpierw czy słowo wpisane w formularzu jest prawidłowo dostarczane do funkcji szukającej, bo na moje nie.
W formularzu zmień metodę wysyłania na post, pamiętając aby po wykonaniu skryptu słowo brać z tablicy $_POST a nie $_GET. -------------------- fitmate.pl - aplikacje internetowe
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
zmieniłem metodę wysyłania na _POST, jednak nadal występuje ten sam problem. Jeżeli chodzi o kodowanie bazy danych to na pewno jest dobre sprawdziłem to wpisując zapytania do bazy z poziomu phpMyAdmina, zapytania tam są wyświetlane poprawnie. Przy metodzie GET, po pokazaniu wyniku wyszukiwania w pasku adresu wyświetlany był adres z poprawnym słowem z polskimi znakami, na stronie jednak słowo nie pokazywało polskich znaków.
zmieniłem również funkcję aby pobierała zmienną z tablicy _POST
szukamy dalej ![]() -------------------- Praca IT
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
To pokaż jeszcze funkcję word_filter().
Mogę się domyślać, że używasz funkcji htmlspecialchars() lub htmlentities() i pewnie bez parametrów 2 i 3, a mianowicie, np. ENT_QUOTES i 'utf-8'. -------------------- fitmate.pl - aplikacje internetowe
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
poniżej funkcja word_filter:
-------------------- Praca IT
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
funkcję substr() zamień na mb_substr().
-------------------- fitmate.pl - aplikacje internetowe
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
zmieniłem funkcje tak jak zasugerowałeś jednak teraz w wyniku wyszukiwania nie pojawia się nic, puste pole
-------------------- Praca IT
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 13 Dołączył: 20.03.2007 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Włącz raportowanie błędów, sprawdź czy masz w ogóle rozszerzenie mbstring. Doczytaj jak powinno się stosować tą funkcję mb_string().
mb_substr -------------------- fitmate.pl - aplikacje internetowe
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 22.02.2006 Skąd: Mysłowice Ostrzeżenie: (0%) ![]() ![]() |
witam,
z mojego php.ini wynika że funkcja jest włączona: mbstring Multibyte Support enabled Multibyte string engine libmbfl Multibyte (japanese) regex support enabled Multibyte regex (oniguruma) version 4.4.4 Multibyte regex (oniguruma) backtrack check On mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1. Directive Local Value Master Value mbstring.detect_order no value no value mbstring.encoding_translation Off Off mbstring.func_overload 0 0 mbstring.http_input pass pass mbstring.http_output pass pass mbstring.internal_encoding no value no value mbstring.language neutral neutral mbstring.strict_detection Off Off mbstring.substitute_character no value no value Włączyłem raportowanie błędów i wyświetla następujący błąd: Notice: Undefined variable: word in /home/wojdylam/public_html/lookup.php on line 22 -------------------- Praca IT
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 17:11 |