ProcessWire - Sanitizer: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
Zeile 12: Zeile 12:
  
 
== Welche Sanitizer gibt es? ==
 
== Welche Sanitizer gibt es? ==
ProcessWire bietet eine Vielzahl von Sanitisiermethoden, die über das Sanitizer-Objekt verfügbar sind. Hier ist eine Liste der häufig verwendeten Sanitisiermethoden und deren Beschreibungen:
+
https://processwire.com/api/ref/sanitizer/
 +
ProcessWire bietet eine Vielzahl von Sanitisiermethoden, die über das Sanitizer-Objekt verfügbar sind. Hier ist eine Liste von häufig verwendeten Sanitisiermethoden und deren Beschreibungen:
  
 
     text($value)
 
     text($value)

Aktuelle Version vom 5. August 2024, 17:39 Uhr

Links[Bearbeiten]

Snippets[Bearbeiten]

URL Parsen und bereinigen[Bearbeiten]

https://processwire.com/api/ref/sanitizer/url/g/
$url = $sanitizer->url($page->address_web);
$url = $sanitizer->entities($url); // => http://www.url.de/mypage

E-Mail bereinigen[Bearbeiten]

$email = $sanitizer->email(string $value);

Welche Sanitizer gibt es?[Bearbeiten]

https://processwire.com/api/ref/sanitizer/

ProcessWire bietet eine Vielzahl von Sanitisiermethoden, die über das Sanitizer-Objekt verfügbar sind. Hier ist eine Liste von häufig verwendeten Sanitisiermethoden und deren Beschreibungen:

   text($value)
       Entfernt alle HTML-Tags und optional Leerzeichen.
       Beispiel: wire('sanitizer')->text($input->post->title);
   textarea($value)
       Entfernt alle HTML-Tags, behält jedoch Zeilenumbrüche bei.
       Beispiel: wire('sanitizer')->textarea($input->post->description);
   pageName($value)
       Wandelt den Wert in einen validen Seitennamen um (nur Kleinbuchstaben, Zahlen und Bindestriche).
       Beispiel: wire('sanitizer')->pageName($input->post->name);
   name($value)
       Entfernt alles außer Buchstaben, Zahlen, Bindestrichen und Unterstrichen.
       Beispiel: wire('sanitizer')->name($input->post->username);
   email($value)
       Filtert und validiert E-Mail-Adressen.
       Beispiel: wire('sanitizer')->email($input->post->email);
   url($value)
       Filtert und validiert URLs.
       Beispiel: wire('sanitizer')->url($input->post->website);
   int($value)
       Wandelt den Wert in eine Ganzzahl um.
       Beispiel: wire('sanitizer')->int($input->post->age);
   float($value)
       Wandelt den Wert in eine Gleitkommazahl um.
       Beispiel: wire('sanitizer')->float($input->post->price);
   bool($value)
       Wandelt den Wert in einen Booleschen Wert um.
       Beispiel: wire('sanitizer')->bool($input->post->active);
   entityDecode($value)
       Wandelt HTML-Entities in ihre entsprechenden Zeichen um.
       Beispiel: wire('sanitizer')->entityDecode($input->post->encodedText);
   unentities($value)
       Entfernt HTML-Entities.
       Beispiel: wire('sanitizer')->unentities($input->post->encodedText);
   purify($value)
       Bereinigt HTML-Inhalt, um sicherzustellen, dass keine schädlichen Skripte oder Tags vorhanden sind.
       Beispiel: wire('sanitizer')->purify($input->post->htmlContent);
   filename($value)
       Wandelt den Wert in einen gültigen Dateinamen um.
       Beispiel: wire('sanitizer')->filename($input->post->uploadedFileName);
   date($value)
       Konvertiert den Wert in ein gültiges Datum (Unix-Timestamp).
       Beispiel: wire('sanitizer')->date($input->post->date);
   selectorValue($value)
       Bereinigt einen Wert für die Verwendung in einem Selektor.
       Beispiel: wire('sanitizer')->selectorValue($input->post->selector);

Beispiel für die Verwendung mehrerer Sanitisierer in Ihrem Formular

Angenommen, Sie möchten sicherstellen, dass alle Eingabewerte ordnungsgemäß bereinigt werden, können Sie die verschiedenen Sanitisierer wie folgt verwenden:

public function getFormMarkup() {
    $titleValue = wire('sanitizer')->text(wire('input')->post('title'));
    $titleErrors = $this->getFieldErrors('title');
    
    $resourceTypeValue = wire('sanitizer')->int(wire('input')->post('resource_type'));
    $resourceTypeErrors = $this->getFieldErrors('resource_type');

    $resourceTypes = $this->getResourceTypes();
    $resourceTypeOptions = '';
    foreach ($resourceTypes as $option) {
        $selected = $resourceTypeValue == $option->id ? ' selected' : '';
        $resourceTypeOptions .= "<option value='{$option->id}'{$selected}>{$option->title}</option>";
    }

    return "
        <form method='post'>
            <div class='uk-margin'>
                <label class='uk-form-label' for='title'>Titel</label>
                <div class='uk-form-controls'>
                    <input class='uk-input' type='text' name='title' id='title' value='{$titleValue}'>
                    {$titleErrors}
                </div>
            </div>
            <div class='uk-margin'>
                <label class='uk-form-label' for='resource_type'>Ressourcentyp</label>
                <div class='uk-form-controls'>
                    <select class='uk-select' name='resource_type' id='resource_type'>
                        {$resourceTypeOptions}
                    </select>
                    {$resourceTypeErrors}
                </div>
            </div>
            <div class='uk-margin'>
                <button type='submit' name='submit_add' class='uk-button uk-button-primary'>Weiter</button>
            </div>
        </form>
    ";
}

Mit diesen Sanitisiermethoden können Sie sicherstellen, dass alle Eingaben korrekt bereinigt und validiert werden, bevor sie weiterverarbeitet werden.