Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
Witam,
Mam następujący problem: Chcę stworzyć aplikację w PHP z wykorzystaniem bazy danych w mysql-u. Tworzę formularz kodowany w utf-8, z którego informacje przekazywane są metodą POST do pliku php przetwarzającego skrypt umieszczający wprowadzone dane do bazy. Problem polega na tym, że wprowadzając polskie znaki w formularzu, w bazie pojawiają się krzaki. Problem co gorsza występuje na poziomie PHP, bo jak wyświetlę sobie zmienną przechowującą wyraz z polskimi literami przed wpisaniem do bazy, to na ekranie również dostaję krzaki. Zmienną tą pobieram za pom. funkcji htmlentities i przypuszczam, że to ona może coś mieszać. Dodam jeszcze, że pomimo ustawienia kodowania w metatagu na utf8 i zakodowaniu samego pliku w utf (notepad++) na stronie również odziwo wyświetlają się krzaczki. Strona uruchamiana jest na lokalnym serwerze Wamp. Dodam jeszcze, że baza danych została stworzona z utf8 (tak samo jak tablice), parametry połączenia skryptu PHP z mysql też są poustawiane na utf8 (polecenie status z mysql zwraca dla connection, server, db i client - utf8) za pomocą takich poleceń jak (przykładowo): Pliki formularza i skryptu PHP są zakodowane w utf-8 przy użyciu programu notepad++. Podsumowując: Jak stworzyć fformularz i bazę danych, aby zapis do i odczyt z bazy przy pomocy php odbywał się przy pomocy kodowania utf8 i poprawnie wyświetlał wszystkie znaki. Ten post edytował Wickerman 27.06.2010, 13:45:35 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 22 Dołączył: 15.07.2008 Skąd: Raniżów/Rzeszów Ostrzeżenie: (0%)
|
Tak tylko zapytam, jakie masz ustawione kodowanie html?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 22 Dołączył: 15.07.2008 Skąd: Raniżów/Rzeszów Ostrzeżenie: (0%)
|
Sorki, nie zauważyłem wcześniej (IMG:style_emoticons/default/smile.gif)
Kiedyś miałem tak w notepad++, że jeśli najpierw miałem ustawione kodowanie ANSI i wpisane polskie znaki to później jak konwertowałem na UTF8 to na stronie wywalało krzaki, bo polskie znaki zostały przekodowane do tych krzaczków. Nie wspomniałeś też nic o tym, czy dokument masz z BOM czy bez BOM. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
Sytuacja poniekąd troszeczkę się wyjaśniła, wyrzuciłem htmletities i skrypt nie krzaczy na poziomie PHP. Także problem z krzaczkami w plikach php został zażegnany. Kodowanie oczywiście jest wszędzie ustawione na utf-8. Problem pozostał z bazą danych.
Wpisując tekst w formularzu "Pięść", w bazie danych zapisuje się "Pi?(IMG:style_emoticons/default/questionmark.gif) ". Oto skrypt wprowadzający do BD:
I jeszcze mała diagnostyka bazy danych:
Baza danych:
STATUS:
Sorry za format, ale przeprowadzam testy w warunkach "polowych" żeby sobie nie namieszać w dotychczasowej pracy. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 22 Dołączył: 15.07.2008 Skąd: Raniżów/Rzeszów Ostrzeżenie: (0%)
|
A dałeś w notepad++ Konwertuj na UTF8 (bez BOM)? Wydrukuj sobie tablicę POST i sprawdź jakie ona ma wartości. Podejrzewam, że ma krzaczki. Bo skoro z poziomu php kodowanie masz dobre, to znaczy, że błąd jest w kodowaniu plików.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%)
|
A przypadkiem Twoja przeglądarka nie jest ustawiona na ISO ?
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
Przeglądarka pokazuje kodowanie UTF-8, pliki są enkodowane w notepad++ za pomocą UTF8 (bez BOM). Do tego tablica POST nie jest zakrzaczkowana, jedynie baza danych zamiast polskich znaków diakrytycznych wstawia pytajniki.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%)
|
Przeglądarka pokazuje kodowanie UTF-8, pliki są enkodowane w notepad++ za pomocą UTF8 (bez BOM). Do tego tablica POST nie jest zakrzaczkowana, jedynie baza danych zamiast polskich znaków diakrytycznych wstawia pytajniki. Ale jak wyciągniesz te dane z bazy i wyświetlisz na swojej www to są zakrzakowane? Może to w czym przeglądasz obecnie tabelę jest źle ustawione .. ps. U mnie Twój kod działa poprawnie. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
@ramol:
To jest pewien pomysł, bo dane z tabeli to wyciągam w oknie mysql-a, po wyciągnięciu ich z powrotem do www być może problemu nie będzie, co nie zmienia faktu, że wciąż pozostaje jedna uciążliwość gdyż chcąc wyciągnąć niezakrzaczone dane z bazy trzeba będzie to robić tylko i wyłącznie za pomocą PHP co w przypadku zastosowań mojej bazy nie będzie zbyt praktyczne (ze względu na różnorodność zapytań). Może jestem perfekcjonistą, ale lubię gdy mam wszystko pod kontrolą, bo w razie draki wiem co się dzieje. Więc ponawiam pytanie: dlaczego pomimo poprawności wyświetlania danych na stronie www, przy ustawieniach bazy podanych wyżej polskie litery w bazie nie są poprawnie wyświetlane. PS. Jeszcze jedna rzecz. Gdy wpisuję polskie litery z poziomu wiersza poleceń mysql-a (również z konta roota) dane są wprowadzane do bazy poprawnie O_O No i dziękuje za dotychczas udzielone odpowiedzi, które okazały się bardzo pomocne! |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 5 Dołączył: 19.07.2005 Ostrzeżenie: (0%)
|
Czym administrujesz bazę ? Z wiersza poleceń windowsa czy coś w tym stylu ? Jeśli tak to wina po prostu tego programu/terminala w ustawieniach wyświetlania (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.09.2009 Ostrzeżenie: (0%)
|
No tak, używając konsoli z Windowsa, w bazie są krzaki, ale gdy wyciągam dane z powrotem na stronę lub za pomocą phpMyAdmina to wszystko śmiga aż miło (IMG:style_emoticons/default/guitar.gif)
Jeszcze raz dziękuję za pomoc. |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 11:31 |