Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP &mySQL:Wann genau htmlentities verwenden?

Hier ist die allgemeine Faustregel.

Sie möchten, dass Ihre Variablen saubere Darstellungen der Daten sind. Das heißt, wenn Sie versuchen, den Nachnamen von jemandem namens „O'Brien“ zu speichern, dann tun Sie das definitiv nicht wollen diese:

O'Brien
O\'Brien

.. denn, nun ja, das ist nicht sein Name:Es gibt keine kaufmännischen Unds oder Schrägstriche darin. Wenn Sie diese Variable nehmen und in einem bestimmten Kontext ausgeben (z. B.:in eine SQL-Abfrage einfügen oder auf einer HTML-Seite drucken), das ist, wenn Sie es ändern.

$name = "O'Brien";

$sql = "SELECT * FROM people "
     . "WHERE lastname = '" . mysql_real_escape_string($name) . "'";

$html = "<div>Last Name: " . htmlentities($name, ENT_QUOTES) . "</div>";

Sie möchten niemals htmlentities haben -codierte Zeichenfolgen, die in Ihrer Datenbank gespeichert sind. Was passiert, wenn Sie eine CSV- oder PDF-Datei oder irgendetwas anderes nicht generieren möchten HTML?

Halten Sie die Daten sauber und entkommen Sie nur für den spezifischen Kontext des Augenblicks.