AppForm – chybné kódovanie pri UTF-8
- smasty
- Člen | 90
Mám dáta (titulok, obsah), ktoré ťahám z MySQL databázy pri SET NAMES utf8. Keď dáta vykreslujem priamo do šablóny, kódovanie je v poriadku. Akonáhle však dáta zobrazím v editačnom formulári, zobrazia sa v chybnom kódovaní: Domovská stránka.
Pri nastavení $form->encoding
sa formulár vykreslí
normálne (v HTML entitách).
Kde mám hľadať chybu?
Používam Nette 0.9.7 pre PHP 5.3.
Editoval smasty (10. 12. 2010 20:59)
- jtousek
- Člen | 951
Nette je po většinou optimalizované právě pro UTF-8, dnes prakticky ani nemá smysl používat něco jiného. Jinak u mysql jsem vždy uváděl 2 příkazy pro správné kódování. Samotný set names v některých případech nestačil.
SET CHARACTER SET utf8;
SET NAMES utf8;
EDIT: Dále si zkontroluj meta tagy, nebo ještě lépe hlavičky.
Editoval jtousek (10. 12. 2010 21:44)
- smasty
- Člen | 90
Tak, chybu som nakoniec našiel. Bola v chýbajúcom meta tagu, keďže na
začiatku šablóny pre view edit som zabudol definovať
{block content}
a tým pádom sa mi nenačítal celý
@layout.phtml, ktorý danú hlavičku obsahoval.
(Inak vizuál sa nezmenil, keďže v layoute dokopy nič nie je, preto mi ani nenapadlo, že by to mohla byť takto triviálna chyba…)
Ak ešte môžem jednu Offtopic otázku (V Nette ešte len dnes začínam):
Ako najlepšie preniesť nejaké dáta medzi jednotlivými metódami
v prezenteri? Zatiaľ používam $this->template
, keďže sa
jedná len o dáta ktoré potrebuje šablóna, ale čo použiť, ak to so
šablónou nebude mať nič spoločné? Napr. nejakú riadiacu premennú…
Editoval smasty (10. 12. 2010 22:19)
- smasty
- Člen | 90
Tak napr. v actionEdit
zistím, že sa článok ešte neexistuje
a to by som chcel pridať metóde renderEdit
, ktorá by podla toho
pridala formuláru skryté pole indikujúce, že ide o nový článok. (Podľa
neho sa potom rozohodne, či pri spracovaní sa údajmi naplní pomyselná
funkcia update
alebo create
). Skúšal som to pomocou
persistentných properities, ale tam vidím nevýhodu, že sa to prenáša
v URL.
(ako príklad to asi nie je najlepšie, toto by sa asi dalo riešiť aj inak, ale na načrtnutie problému snáď postačuje…)
- Jan Tvrdík
- Nette guru | 2595
smasty napsal(a):
Skúšal som to pomocou persistentných properities, ale tam vidím nevýhodu, že sa to prenáša v URL.
Tak a teď to zkus znova a smaž anotaci @persistent.