sql >> Database >  >> RDS >> Mysql

Heb ik htmlentities() of htmlspecialchars() nodig in voorbereide statements?

htmlentities en htmlspecialchars worden gebruikt om de HTML-uitvoer . te genereren die naar de browser wordt gestuurd.

Voorbereide instructies worden gebruikt om query's te genereren/verzenden naar de Database-engine .

Beide maken het ontsnappen van gegevens mogelijk; maar ze ontsnappen niet voor hetzelfde gebruik.
Dus nee, voorbereide instructies (voor SQL-query's) belet u niet om htmlspecialchars correct te gebruiken /htmlentities (voor HTML-generatie)

Over strip_tags :het verwijdert tags uit een string, waar htmlspecialchars zal ze transformeren naar HTML-entiteiten.
Die twee functies doen niet hetzelfde; je moet kiezen welke je wilt gebruiken, afhankelijk van je behoeften / wat je wilt krijgen.

Bijvoorbeeld met dit stukje code:

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

Je krijgt dit soort output:

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

In het eerste geval geen tag; in de tweede, correct ontsnapte.

En, met een HTML-uitvoer:

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

Je krijgt:

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

Welke van die wil je? Dat is de belangrijke vraag ;-)



  1. Basistafel of weergave niet gevonden:1146 Tafel Laravel 5

  2. Postgresql verbinden met sqlalchemy

  3. Hoe kan ik een parameter doorgeven aan een t-sql-script?

  4. SQLite Python