sql >> Databáze >  >> RDS >> Mysql

Potřebuji htmlentities() nebo htmlspecialchars() v připravených příkazech?

htmlentities a htmlspecialchars se používají ke generování výstupu HTML který se odešle do prohlížeče.

Připravené výpisy se používají ke generování/odesílání dotazů do Databázového stroje .

Oba umožňují únik dat; ale neuniknou pro stejné použití.
Takže ne, připravené příkazy (pro SQL dotazy) nebrání vám správně používat htmlspecialchars /htmlentities (pro generování HTML)

O strip_tags :odstraní značky z řetězce, kde htmlspecialchars převede je na HTML entity.
Tyto dvě funkce nedělají totéž; měli byste si vybrat, který z nich použijete, podle svých potřeb / toho, co chcete získat.

Například s tímto kódem:

$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));

Získáte tento druh výstupu:

string 'this is a test' (length=14)
string 'this is a &lt;strong&gt;test&lt;/strong&gt;' (length=43)

V prvním případě žádná značka; ve druhé, správně uniklé.

A s výstupem HTML:

$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);

Získáte:

this is a test
this is a <strong>test</strong>

Kterou z nich chcete? To je důležitá otázka -)



  1. Chyba zkrácení dat MySQL

  2. Připojení k MySQL přes SSL pomocí PHP

  3. Jak zjistit uživatelské jméno a heslo pro databázi mysql

  4. import CSV do phpmyadmin