Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] wstawianie danych a polskie znaki
Forum PHP.pl > Forum > Przedszkole
kazag
Nie chcę zakladac nowego tematu.

Zastosowałem się do rad zawartych w artykule, czyli pozmienialem metody porownywania dla bazy i dla tabel.
Funkcja łącząca się z baza wyglada następująco:
  1. <?php
  2. function baza()
  3. {
  4. $wynik=mysql_connect('mysql6.000webhost.com', 'baza', 'haslo');
  5. mysql_query("SET NAMES utf8");
  6. mysql_query("SET CHARACTER SET utf8_unicode_ci");
  7. if(!$wynik)
  8. return false;
  9. if(!mysql_select_db('a6086756_et'))
  10. return false;
  11. return $wynik;
  12. }
  13. ?>

sekcja head pliku:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <meta http-equiv="content-type" content="text/html; charset=utf-8" />

Generalnie więc wszystko zrobiłem poprawnie, a mimo to w bazie są krzaaaaaaki. Host to 000webhost.
Jakieś pomysły? Bo google mi nie pomogły.
erix
Ale to nie zmienia faktu, że musisz ponownie wgrać dane do bazy z nowym kodowaniem. winksmiley.jpg

Użyj szukajki na frazę mysql kodowanie, znajdziesz więcej takich tematów.
kazag
@erix - nie chodzi mi o dane w bazie, one sa bez znaczenia. Chodzi o to, ze przy dodawaniu danych do bazy ciagle robią się krzaki...
erix
A struktura tabeli?
pyro
Cytat(webdice @ 1.01.2009, 17:21:06 ) *
Wiele osób ma problem z polskimi znakami w bazie danych, dlatego postanowiłem jakiś czas temu napisać artykuł na łamach wortalu. Mam nadzieje że będzie pomocny, a forum nie będzie zaśmiecane kolejnymi pytaniami dotyczącymi tego problemu.

Artykuł znajduje się tutaj.


Nie potraktowałeś coś dogłębnie tego tematu... to się nadaje ledwo na wzmiankę tongue.gif
kazag
tzn?
Kod
Table       RecordsTip       Type      Collation
art       11  MyISAM     utf8_general_ci
komentarze     63     MyISAM     utf8_unicode_ci
ocena 5     MyISAM     utf8_unicode_ci
oferta 5     MyISAM     utf8_unicode_ci
ogl     15     MyISAM     utf8_unicode_ci
user     2     MyISAM     utf8_unicode_ci
wpis     8     MyISAM     utf8_unicode_ci
7 table(s)     Sum     109     MyISAM     utf8_unicode_ci


edit: ktoś podzielił wątek, nie wiem czemu, ale niech będzie.
cojack
Może po prostu kodowanie w konsoli masz iso-8859-2 lub cp 1250 i stąd widzisz krzaki.
kazag
Tylko jak to sprawdzić?

edit: nawet jak wpisuje dane w bazie bezposrednio, to pojawiają sie krzaki.

edit2:

1. przerzuciłem stronke na yoyo.pl i co? po modyfikacji funkcji na taką:
Kod
function baza()
{
$wynik=mysql_connect('mysql6.000webhost.com', 'baza', 'haslo');
[b]pusto![/b]
if(!$wynik)
return false;
if(!mysql_select_db('a6086756_et'))
return false;
[b]mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8_unicode_ci");[/b]
return $wynik;
}

Znaki wyświetlają się poprawnie jeśli dokonuje modyfikacji w bazie ręcznie, jeśli dodaje z poziomu skryptu to wciąż są krzaki.
cojack
A czego kolega używa gnu/linuksa czy windowsa? Bo jak tego 2 to nie mam pojęcia.
kazag
Domniema, że zarówno 000webhost jak i yoyo.pl na których HOSTUJE (ja nie mowie o localhoscie...), uzywają linuxa.

hm, poczyniłem pewne "odkrycie". Mianowicie - po otrzymaniu zmiennych tekstowych z formularza filtruje je taką sobie funkcją:

Kod
function filtruj($zmienna)
{
$f=htmlentities(strip_tags(trim($zmienna)));
return $f;
}


i okazuje się, ze wywolując na echo $_POST['zmienna'] mam np. ółęśźćą, a wywołując tę zmienną poprzez:
$zmienna=filtruj($_POST['zmienna']);
dostaje krzaki... ktoś ma pojęcie czemuż?

edit: dobra, wywaliłem htmlentities i fruwa, co prawda narazie na yoyo.pl, sprawdzam na webhoscie...
erix
Cytat
dostaje krzaki... ktoś ma pojęcie czemuż?

To nie przypadkiem magic_quotes?
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.