Eingabe wird gesäubert, aber nicht wie erwartet ausgegeben

Dies ist eines meiner Formulare (PHP + MySQL, Textbereich ersetzt durch TinyMCE). Es zeichnet eine Beschreibung mit Absätzen, Aufzählungszeichen, Überschriften und Textausrichtung (rechts, links, zentriert und ausgerichtet) auf.

Einmal gesendet, erscheint der Datensatz als

<p style="text-align: justify;"><strong>Introduction</strong></p>
<p style="text-align: justify;">The death of the pixel leaves you with a flowing, magazine-quality canvas to design for. A canvas where curves are curves, not ugly pixel approximations of curves. A canvas that begins to blur the line between what we consider to be real and what we consider to be virtual.</p>
<p style="text-align: justify;">It wasn't too long ago that there was one set of rules for use of type on print and use of type on screen. Now that we have screens that are essentially print quality, we have to reevaluate these conventions.</p>
<p style="text-align: justify;">Web sites are transforming from boring fields of Arial to embrace the gamut of typographical possibilities offered by web fonts. Web fonts, combined with the style and layout options presented by the creative use of CSS and JavaScript offer a new world of typographic oppor</p>
<ol>
<li style="text-align: justify;">point 1</li>
<li style="text-align: justify;">point 2</li>
<li style="text-align: justify;">point 3</li>
</ol>

Ich habe gelesen, dass Sie alle Daten bereinigen müssen, die in die Datenbank gelangen, um @ zu vermeide XSS und suchte nach einer Lösung.

Die Lösung, die ich gefunden habe, ist die Verwendung von "htmlspecialchars ()" (Quelle: Lynda.com - Erstellen sicherer PHP-Websites).

So sagt das Tutorial, dass wir unsere Eingaben bereinigen müssen, bevor wir sie in der Datenbank speichern und so etwas wie (Beispielcode) @ verwende

<?php
    if($_SERVER['REQUEST_METHOD'] === 'POST') {
        $category_description = $_POST['category_description'];
        echo $category_description;
        echo '<br><br>';
        echo htmlspecialchars($category_description);
        echo '<br><br>';
        echo htmlentities($category_description);
        echo '<br><br>';
        echo strip_tags($category_description);

    }
?>

vermeiden XSS.

Ich bekomme es bis hier. Die Funktion htmlspecialchars () konvertiert einige vordefinierte Zeichen in HTML-Entitäten, htmlentities () konvertiert Zeichen in HTML-Entitäten und strip_tags () entfernt alle Tags insgesamt.

Aber nach der Verwendung von htmlspecialchars (), htmlentities () und strip_tags () wird die Ausgabe jetzt als @ gerender

Das, was ich für sicher halte, aber auf der Titelseite beim Abrufen aus der Datenbank nicht gut aussieht.

Wie kann ich eine Eingabe rendern, die durch HTML-Sonderzeichen oder HTML-Elemente geleitet wurde?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage