Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
Není úplně jedno, jestli hodnoty atributů v (X)HTML uvádět v uvozovkách, nebo v apostrofech. Podle Yuhůa se může obojí (a validátor apostrofy místo uvozovek bez potíží skousne i pro XHTML Strict 1.0), specifikace hovoří jen o uvozovkách. No, každopádně uvozovky přinesou méně potíží. Aspoň tedy u atributu value v prvcích formuláře.
Příklad: mám formulář pro opravu údajů. Z databáze načtu aktuální údaje a chci jimi formulář předvyplnit. A protože jsem cosi slyšel o nebezpečných znacích pro HTML, nezapomenu text prohnat funkcí htmlspecialchars. Zjednodušeně třeba takto:
<?php $jmeno = htmlspecialchars($jmeno); ?> <input type='text' name='jmeno' value='<?php echo $jmeno;?>'>
Chytří už vědí, že jméno obsahující apostrof (např. O'Brien) mi nadělá pěknou paseku. Funkce htmlspecialchars totiž standardně změní jen uvozovky, kdežto apostrofy nechá být. Musí se použít htmlspecialchars($jmeno,ENT_QUOTES).
No co, tak přidáme parametr do funkce. Ale někdy se to tak snadno ovlivnit nedá. Používám jednoduchý šablonovací systém HTMLTMPL, který při výstupu sice nebezpečné znaky převádí automaticky, ale na apostrofy prostě kašle (resp. neumím ho donutit, aby nekašlal).
Mít místo apostrofu uvozovky je daleko jistější. Do konstrukce
<?php $jmeno = htmlspecialchars($jmeno); ?> <input type="text" name="jmeno" value="<?php echo $jmeno;?>">
se apostrof vpustit nebojím, i když se nepřevede.
Další články si můžete vyhledat v jednotlivých přihrádkách, případně podle data.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník