htmlspecialchars

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mm-marek
Člen | 61
+
0
-

Ahoj,

narazil jsem na problém s výpisem utf8 textu z databáze pomocí dibi.

model má metodu

public function getPost($post_id,$lang){
$sql = "SELECT `text`,`subject`,`id` FROM `translated` WHERE `id` = '$post_id' AND `id_lang` = '$lang'";

$result = $this->db->query($sql);
return $result->fetch();
}

V Presenteru to pak předám

    public function renderDefault()
    {
......
        $post = $this->model->getPost($post_id,$lang);
        $this->template->post = $post;
    }

Pokud se podívám přímo do databáze mám tam „neošetřený“ text – obsahuje znaky jako jsou <>"'

jenže při vypsání mi to vypisuje jak kdybych text ošetřil přes htmlspecialchars.

když k presenteru přidám libobolnou decode funkci, nic se nestane, což mě už pomalu přivádí k šílenství :)

Nevíte kdy bych mohl mít zakopanýcho psa?

Petr Motejlek
Člen | 293
+
0
-

Jakým způsobem to vypisuješ? Pomocí {$promenna} se vždychy udělá htmlspecialchars($promenna). Pokud nechceš dělat htmlspecialchars(), udělej {!$promenna}. A mrkni na https://latte.nette.org/cs/tags.

mm-marek
Člen | 61
+
0
-

díky díky :) tušil jsem že to někde bude takhle ošetřené, ale spíš bych očekával opačné výchozí chování…

_Martin_
Generous Backer | 679
+
0
-

mm-marek napsal(a):

díky díky :) tušil jsem že to někde bude takhle ošetřené, ale spíš bych očekával opačné výchozí chování…

Má to svůj důvod: lepší vypsat na stránku html tag, než vložit nebezpečný skript.