Wann wird esc_html und wann sanitize_text_field verwendet?


10

Es scheint, dass sie fast die gleiche Art von Arbeit machen. Damit...

Wann sollte ich esc_html()anstelle von verwenden sanitize_text_field()?

Antworten:


19

esc_html() ist mehr oder weniger verlustfrei - es wandelt nur HTML-Markups in codierten sichtbaren Text um, sodass es vom Browser nicht als Markup gerendert wird.

Semantisch ist es Escape , also soll es verwendet werden, um die Ausgabe auf eine Seite sicher zu machen .

sanitize_text_field()Entfernt jedoch tatsächlich alle HTML-Markups sowie zusätzliche Leerzeichen. Es bleibt nichts als einfacher Text.

Semantisch ist es desinfiziert , daher soll es verwendet werden, um die Speicherung von Eingaben zu gewährleisten.


Ist es nicht besser, esc_html sowohl für die Ausgabe als auch für das Speichern zu verwenden? Ich werde sowieso kein Markup anzeigen. Wann würde ich sanitize_text_field () verwenden?
Yeahman

1
@yeahman "besser" wie? Sie machen deutlich unterschiedliche Dinge. Verwerfen von Markups, die normalerweise für Dinge verwendet werden, bei denen Markups nicht erwartet werden, z. B. Formulare, die einen Namen haben.
Rarst

Ich meine, es speichert, was der Benutzer sieht und hat Eingaben ... wie Sie sagten, es ist verlustfrei ... (z. B. gibt er "das Tag <head> ist der Ort, an dem Sie Ihre CSS-Dateien einfügen sollten" ein, er erwartet, dass die <head> darin angezeigt wird sein Beitrag). Für ein Namensfeld würde ich die Eingabe über die Validierung steuern; ist es nicht besser geeignet?
Yeahman

Ich interessiere mich für die Unterschiede zwischen sanitize_text_field()undstrip_tags
myol

strip_tags wird in sanitize_text_field () verwendet, wenn ich mich nicht irre
yeahman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.