Fórum Root.cz

Hlavní témata => Server => Téma založeno: Vladimír Pešta 23. 10. 2014, 16:13:58

Název: LAMP - české znaky na webu
Přispěvatel: Vladimír Pešta 23. 10. 2014, 16:13:58
Dobrý den,
v současné chvíli řeším linux server, kde je nainstalovaný linux, apache, mysql, php. Při nahrání webových stránek se mi na webu špatné zobrazují české znaky, ale pouze u položek, které se stahují z databáze. Na jiném hostingu je vše ok. V databázi je nastaveno korektně utf-8 a v nastavení php je nastaveno default charset=utf-8. Bylo mi řečeno, že by mělo stačit do linuxu doinstalovat nějaký balíček. Mohl by mi někdo poradit o co jde? Děkuji.
Název: Re:LAMP - české znaky na webu
Přispěvatel: Dzavy 23. 10. 2014, 16:36:06
A co mas v SET NAMES po pripojeni PHPka?
Název: Re:LAMP - české znaky na webu
Přispěvatel: j 23. 10. 2014, 17:31:03
1) nejak ulozeny jsou data v DB
2) nejaky kodovani pouziva connection do databaze
3) nejaky kodovani posila apache

Pokud mas vse nastaveny spravne, pak to funguje "samo"

napr, pokud bys mel data v databazi jako win1250 (pochopitelne radne oznaceno), ale pripojeni bys proved jako utf8, tak to mysql samo prekoduje (tam i zpet), ovsem musis zajistit, ze na vstupu bude vzdy utf8 a na vystupu taktez.

To ze ti to nefunguje === neco mas nekde blbe.

a) over si, v jakym kodovani je to, co vidis na webu. Pokud to nejake ma, tak to znamena, ze mas neco jinyho v textech z php a neco jinyho v connection/databazi.
b) pokud to zadne kodovani nema(= ani iso, ani win ani utf ti nezobrazi znaky) = ty sice v databazi o datech tvrdis, ze jsou v nejakym kodovani, ale ukladas je v jinym.

Pokud si ses 100% jistej tim, ze data v databazi jsou utf-8, a nechces (spravne) nastavit connection (trebas proto, ze pouzivas nejakou appku, do ktery se nechces hrabat), tak muzes v mysql nastavit default. Da se tam dokonce nastavit, ze ma ignorovat nastaveni zvenku v ramci connection. Hledej character-set-server, skip-character-set-client-handshake
Název: Re:LAMP - české znaky na webu
Přispěvatel: to_je_jedno 23. 10. 2014, 19:17:23
a pak do toho vstupuje jestli jsi neupravoval php soubory (nebo i jine treba z template) ve widlich ktery ti je ulozi jako pojebany 1250

o zadnym specialnim balicku v tomto smeru nevim. jen vim, je potreba z celyho kolotoce vymazat widlous. no a samozrejme poresit si pri prenosu DB jestli na puvodnim stroji nebyla latin1
Název: Re:LAMP - české znaky na webu
Přispěvatel: Kit 23. 10. 2014, 19:28:55
První SQL dotaz, který pošleš po každém připojení k DB, musí být

Kód: [Vybrat]
SET NAMES utf8
Je možné, že jinde to mají nastaveno jako default.
Název: Re:LAMP - české znaky na webu
Přispěvatel: Vladimír Pešta 28. 10. 2014, 15:41:51
Zdravím, moc děkuji za rady. :-) Nakonec se vše vyřešilo. Kamarád psal web na php verze 5.5 a na serveru bylo nainstalováno 5.3.3. tím pádem php neumělo s některými věcmi pracovat. :-) Ale narazil jsem na další zádrhel. Odesílání mailů pomocí php. Na serveru používáme postfix. Je nainstalovaný a pokud odesílám mail z terminálu, tak mi bez problému odejde. Přes php kontaktní formulář na webu, ale neodejde nic. Máte nějakou radu? Díky.
Název: Re:LAMP - české znaky na webu
Přispěvatel: j 29. 10. 2014, 17:05:44
1) nemas povoleny odesilani z php
2) zarizne ti to neco v postfixu (to bys videl v jeho logu)
Název: Re:LAMP - české znaky na webu
Přispěvatel: Vladimír Pešta 03. 11. 2014, 19:59:37
Jo, programátor, co dělal web udělal chybu v kodu php, takže zde byl celý zádrhel. Bohužel mi svatosvatě tvrdil, že on to má dobře.