ProcessWire - Sanitizer: Unterschied zwischen den Versionen
Aus Wikizone
Steff (Diskussion | Beiträge) |
|||
| Zeile 10: | Zeile 10: | ||
=== E-Mail bereinigen === | === E-Mail bereinigen === | ||
$email = $sanitizer->email(string $value); | $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: | ||
| + | |||
| + | <syntaxhighlight lang="php"> | ||
| + | |||
| + | 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> | ||
| + | "; | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | Mit diesen Sanitisiermethoden können Sie sicherstellen, dass alle Eingaben korrekt bereinigt und validiert werden, bevor sie weiterverarbeitet werden. | ||
Version vom 5. August 2024, 08:36 Uhr
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.