Wie kann man einzelne HTML-Tags erlauben (htmlspecialchars)?

...komplette Frage anzeigen

2 Antworten

Mit htmlspecialchars() dürfte das nicht möglich sein, denn das "guckt" nicht nach HTJML Tags, sondern ersetzt jedes Zeichen einzeln. 

Mit strip_tags() ist das aber kein Problem, da kannst du als zweiten Parameter die erlaubten Tags angeben: http://php.net/strip_tags

Savix 15.04.2017, 18:34

Danke schön.

Allerdings werden die Tags immernoch als Klartext ausgegeben. Muss ich den htmlspecialchars()-String entfernen und dafür den mysqli_real_escape_string einsetzen?

0
mastema666 15.04.2017, 19:28
@Savix

Den String musst du dann nicht mehr mit htmlspecialchars() bearbeiten, es sei denn du willst, dass der Code genau so angezeigt und nicht "ausgeführt" wird, strip_tags() entfernt alle Tags außer der erlaubten.

Für HTML musst du da auch nichts extra escapen, das ist eher dazu gedacht, SQL Injections zu verhindern, ich würde da allerdings gleich Prepared Statements verwenden, dann muss man nicht jeden String, der aus einer Usereingabe kommt, manuell escapen (eins von beidem sollte man aber auf jeden Fall benutzen).

1

Filtere den String mit einem eigenen regulären Ausdruck.

Was möchtest Du wissen?