Frage

Wenn ich die escape-code, denn ich möchte es anzeigen, wie der eigentliche code in html-Format (z.B. für ein Beispiel-code-snippet), in der Datenbank speichern und dann ziehen Sie es zurück in den editor (html-Seite), ist es angezeigt, als html, als Gegensatz zu den escaped text.

Mein problem entsteht, wenn ich ein textarea-tag in den text, denn er wird vorzeitig schließen Sie das Bearbeiten-Bereich und schneidet den rest von dem, was ich Schreibe, wenn es ist gespeichert (oder mehr, wenn ich nicht in der Nähe des Tags).

Also meine Frage ist:Ist dies das beabsichtigte Verhalten seitens der browser?-> Also ich brauche zu entkommen, den text (code und pre-tags vielleicht)?jedes mal, wenn ich wollen, um änderungen vorzunehmen?Oder mache ich etwas falsch?

*Hinweis: ich bin die einzige person mit dieser und es wird meist nur für das lernen, also ich bin nicht besorgt über den Aspekt der Sicherheit so viel wie die Art und Weise überprüfen, muss ich mit meinen html -, wenn Sie es in einem browser und haben es sich Verhalten in einer erwarteten Weise.

War es hilfreich?

Lösung

@Bob: htmlentities () ist nicht das gleiche wie htmlspecialchars ()

htmlentities () wird jedes Zeichen umwandeln, die auf diesen Code einen ASCII-Code. htmlspecialchars () werden nur diejenigen tun, die in HTML-Sonder sind, wie &, Zitate und

Dies ist ein ganz wesentlicher Unterschied, dass einige Dinge brechen kann und kann auch dazu führen, das Ergebnis enorm zu sein, wenn htmlentities () verwendet.

Andere Tipps

Nach meiner Erfahrung, Sie müssen Flucht eine Art von Sonderzeichen zu tun. In PHP ist die Funktion htmlspecialchars (). Ich habe nicht über andere Funktionen kennen. Aber die Browse werden die codierten Zeichen korrekt angezeigt werden in dem Text.

Die meisten web-basierten Sprachen haben einige library-Funktion für die Flucht HTML-Zeichen interpretiert, so überprüfen Sie die Dokumentation für die Sprache, die Sie verwenden.

Wie Darryl sagte, html_entities() (das ist ein alias für htmlspecialchars()) wird den trick tun in PHP.

Ist das beabsichtigte Verhalten seitens des Browsers? Ja, der Browser interpretiert Ihre (unescaped) HTML-Code als HTML-Tags auf die Seite gehört, und wirkt auf sie.

Also muss ich den Text (Code und Pre-Tags vielleicht) entkommen? Ja, wie Darryl Hein sagte, benutzen htmlspecialchars (). Sie werden korrekt im Browser angezeigt werden, und Sie müssen nicht auf „unescape“ die Daten benötigen, da sie wieder von der Bearbeitung kommen.

... mache ich etwas falsch? Sie sollten jede Eingabe kommen auf Ihre Anwendung inspizieren oder sie zu verlassen und sehen, ob es eine Möglichkeit, von beliebigen Zeichen in es ist, die für den Browser eine besondere Bedeutung haben, für Ihren Datenbankserver und für andere Teile Ihrer Lösung. Sie sollten die Sonderzeichen richtig für jede Interaktion (das heißt mysql_escape_string () für MySQL-Datenbank, htmlspecialchars () für HTML, etc.) Entkommen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top