✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

URLs in WordPress bereinigen

14

Die Arbeit mit benutzerzentrierten Feldern in WordPress – wie inputElemente, textareaElemente oder jede Art von Feld, in dem ein Benutzer seine eigenen Werte eingeben kann, ist ein Ort, der immer ein Ziel der Bereinigung sein sollte.

Glücklicherweise bietet die WordPress-API eine Reihe von Funktionen, die dabei helfen. Abhängig von Ihrem Anwendungsfall müssen Sie möglicherweise einen der folgenden Schritte ausführen:

Und das ist alles schön und gut, aber es gibt auch Möglichkeiten, wie Sie daran arbeiten können, die Daten mit den von PHP bereitgestellten Funktionen zu bereinigen.

Sicher, manchmal sind reguläre Ausdrücke der richtige Weg, aber manchmal möchten Sie vielleicht Einrichtungen verwenden, die in die Sprache eingebaut, einfacher zu verstehen und leichter zu befolgen sind.

Wenn ich meinen eigenen Code schreibe (und wenn ich andere überprüfe), versuche ich, dies im Hinterkopf zu behalten. Nachdem dies gesagt ist, hier ist ein Prozess, den Sie verwenden können, um Ihre Bemühungen bei der Arbeit mit URLs in WordPress zu erleichtern.

Wenn Sie keine Lust auf eine vollständige Diskussion darüber haben, können Sie zur Überschrift am Ende des Beitrags springen, in der der Code und seine Verwendung in Ihrer Arbeit beschrieben werden.

Nehmen wir an, Sie haben ein offenes inputElement und Sie möchten dem Benutzer erlauben, eine URL bereitzustellen, die schließlich auf dem Front-End gerendert wird, vielleicht in einem Link, in einer Art Schema oder einfach so, wie sie ist.

Es ist möglich, wirklich aggressiv zu sein und einfach etwas zu tun wie „Wenn dies keine gültige URL ist, dann speichere sie nicht.”

Und um es klar zu sagen, ich sage nicht, dass eine gültige URL kein 404 zurückgibt (denn manchmal existieren Seiten und Jahre später nicht mehr). Ich definiere eine gültige URL als eine, die korrekt formatiert ist und keine irrelevanten Informationen enthält.

Nehmen wir für dieses einfache Beispiel an, Sie bieten ein Textfeld an, das schließlich in der Post-Metadatentabelle gespeichert wird. Außerdem entfernen Sie alles, was in einer URL illegal ist, und lassen nur das übrig, was eine gültige URL erstellen würde.

Dazu finde ich die folgenden Funktionen am nützlichsten:

  • strip_tags. Entfernen Sie HTML- und PHP-Tags aus einer Zeichenfolge.
  • Streifenschläge. Hebt die Anführungszeichen einer Zeichenfolge in Anführungszeichen auf.
  • filter_var. Filtert eine Variable mit einem angegebenen Filter.

Letzteres klingt ein wenig verwirrend, weil es auf der Idee basiert, dass Sie verstehen, was Filter eigentlich sind. In PHP können Filter in zwei Anwendungsfälle unterteilt werden:

  1. Validierung
  2. Desinfektion

Und sie sind im Wesentlichen vorgefertigte Möglichkeiten für uns, Daten so zu verarbeiten, dass Daten verarbeitet werden, um festzustellen, ob es sich um die Art von Informationen handelt, normalerweise eine Zeichenfolge oder ein Array, nach denen wir suchen.

Es zum Laufen bringen

In Anbetracht dessen können Sie wie folgt versuchen, Informationen ohne jegliche Art von Bereinigung in der Datenbank zu speichern (was eine schlechte Sache ist):

Mit dem obigen Code kann der Benutzer buchstäblich alles in das Feld eingeben und es in der Datenbank speichern lassen. Deshalb ist die Desinfektion wichtig. Ohne sie kann der Benutzer die Benutzererfahrung oder die gesamte WordPress-Installation verwüsten.

Wie sieht es also aus, den obigen Code beim Bereinigen von URLs anzuwenden? Generell sieht das so aus :

Zunächst wird der Code durch einen PHP-Filter geleitet, der eine URL validiert. Wenn die an die Filterfunktion übergebene Zeichenfolge nicht einmal als URL funktioniert, gibt die Funktion zurück false.

Wenn es andererseits als gültige URL funktioniert, können wir alle nicht benötigten Schrägstriche entfernen. Das bedeutet, dass wir „jede Zeichenfolge in Anführungszeichen aufheben” können. Genauer gesagt wird dadurch der erste aufeinanderfolgende Backslash entfernt (weil in PHP Backslashs verwendet werden, um einem Backslash zu entkommen). Klar? 🙂

Schließlich entscheiden wir uns dafür, die Tags zu entfernen, weil wir nur die URL selbst wollen. Wir wollen kein Markup, keine Tags oder irgendetwas, das die in die Datenbank geschriebenen Daten sabotieren könnte. Das bedeutet, wenn Sie sich für etwas wie das Folgende entscheiden:

Ihnen bleibt:

"https://tommcfarlin.com/alert('hello world!');"

Setzen Sie also den gesamten obigen Code mit dieser Zeichenfolge zusammen:

Wird zu folgender Ausgabe führen:

https://tommcfarlin.com/alert('hello world!');

Dies ist offensichtlich keine gültige URL, aber sie ist sauber, sicher und ermöglicht es Ihnen, alle anderen Arbeiten auszuführen, die Sie möglicherweise ausführen müssen, um zu überprüfen, ob die URL für den Benutzer sicher ist.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen