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.