Autor Zpráva
__construct
Profil
Narazil som na problém:
Keď mám rozpísanú správu a refreshnem si stránku cez R tak sa mi vymaže text vidím niečo takéto, to isté sa mi stáva s rôznymi obmenami aj pri editovaní správy.
Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729)
Chamurappi
Profil
Reaguji na __constructa:
Problém je v tom, že se POSTem zaslaná zpráva plácne do <textarea> tak, jak byla přijatá, bez jakéhokoliv ošetření. Takže se v rozepsané zprávě interpretují entity a je také možné zavřít element <textarea>. Měli bychom to opravit.
Str4wberry
Profil
Měli bychom to opravit.

Potřebuješ k tomu nějakou mou pomoc?
Chamurappi
Profil
Reaguji na Str4wberryho:
Nejspíš potřebuji. Chyba je (jen) v PHP — posílá na výstup neošetřené HTML získané z POSTu. Nevím, kam přesně strčit nějaké to htmlspecialchars
Str4wberry
Profil
Tak jsem to zkusil opravit, snad to nevyvolá nějakou jinou chybu.
Chamurappi
Profil
Reaguji na Str4wberryho:
Vypadá to dobře, děkuji, zkusím to zanést i do ostré verze.

Akorát to má drobný vedlejší efekt — všechny znaky nedostupné v ISO-8859-2 (typicky třeba české uvozovky) se zjeví v textovém poli jako číselné entity (a v Exploreru občas jako jmenné, třeba „&raquo;“). Prakticky to ničemu nevadí, protože takhle stejně budou ty znaky uložené v databázi po odeslání, ale mohlo by to v někom vzbudit pochybnosti, zda příspěvek skutečně přežil znovunačtení bez úhony.

Pomohlo by, kdyby se v číselných entitách nenahrazoval & za &amp;. Úplně ideální by bylo, kdyby se nenahrazoval jen v těch číselných entitách, které reprezentují znaky nedostupné v ISO-8859-2 (tzn. &#109; by se v textovém poli ukázalo jako entita, ale &#8222; by se převedlo na uvozovku), ale to už je asi zbytečně složité.
Str4wberry
Profil
Zkus to otestovat teď.
Joker
Profil
Str4wberry:
Zkus to otestovat teď.

…teď už se mi to na čísla nepřevádí
Chamurappi
Profil
Reaguji na Str4wberryho:
Výborně.
Stačilo přidat ty tři řádky do bb_func_vtopic.php a bb_func_vthread.php?
Str4wberry
Profil
Ano.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: