ProcessWire - Sanitizer
Aus Wikizone
Version vom 5. August 2024, 08:36 Uhr von 109.193.152.88 (Diskussion)
Links
Snippets
URL Parsen und bereinigen
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
$email = $sanitizer->email(string $value);
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:
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.