sql >> Database teknologi >  >> RDS >> Mysql

Har jeg brug for htmlentities() eller htmlspecialchars() i forberedte erklæringer?

htmlentities og htmlspecialchars bruges til at generere HTML-output der sendes til browseren.

Forberedte udsagn bruges til at generere/sende forespørgsler til databasemotoren .

Begge tillader escape af data; men de slipper ikke for den samme brug.
Så nej, forberedte sætninger (til SQL-forespørgsler) forhindrer dig ikke i at bruge htmlspecialchars korrekt /htmlentities (til HTML-generering)

Om strip_tags :det vil fjerne tags fra en streng, hvor htmlspecialchars vil transformere dem til HTML-enheder.
De to funktioner gør ikke det samme; du bør vælge hvilken du vil bruge afhængigt af dine behov / hvad du ønsker at få.

For eksempel med dette stykke kode:

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

Du får denne type output:

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

I det første tilfælde, ingen tag; i den anden, korrekt undslupne.

Og med et HTML-output:

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

Du får:

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

Hvilken af ​​dem vil du have? Det er det vigtige spørgsmål ;-)



  1. PostgreSQL VACUUM og ANALYSE tips til bedste praksis

  2. Oracle Datetime-funktioner (fuld liste)

  3. Hvordan sletter man dublerede poster i mysql-databasen?

  4. Kontroller, om rækken findes i databasen, før du indsætter