PHP - Formularvalidierung

Hallo da draußen, ambitionierte PHP-Entwickler! Heute tauchen wir in die aufregende Welt der Formularvalidierung ein. Als dein freundlicher Nachbar-Computerlehrer bin ich hier, um dich durch diesen wichtigen Aspekt der Webentwicklung zu führen. Glaub mir, die Beherrschung der Formularvalidierung ist wie das Fahrradfahren lernen - wenn du es einmal kannst, wirst du es nie vergessen!

PHP - Form Validation

Warum Formularvalidierung wichtig ist

Bevor wir uns in den Code stürzen, lassen Sie uns über die Bedeutung der Formularvalidierung sprechen. Stell dir vor, du betreibst einen Online-Pizzalieferdienst. Wenn jemand 'ABC' Pizzen bestellt oder '-5' als Telefonnummer eingibt, wärst du in einer rechtlichen Grauzone! Hier kommt die Formularvalidierung zum Einsatz und stellt sicher, dass die Daten, die du erhältst, korrekt und nutzbar sind.

Client-seitige vs. Server-seitige Validierung

In der Welt der Formularvalidierung haben wir zwei Hauptakteure: client-seitige und server-seitige Validierung. Heute werden wir uns auf die server-seitige Validierung mit PHP konzentrieren, aber lassen Sie uns kurz beide Ansätze erwähnen:

Client-seitige Validierung

Die client-seitige Validierung findet im Browser des Benutzers statt, bevor die Daten an den Server gesendet werden. Sie ist schnell und bietet sofortiges Feedback, kann aber von versierten Benutzern umgangen werden.

Server-seitige Validierung

Die server-seitige Validierung erfolgt auf dem Server nach dem Absenden des Formulars. Sie ist sicherer und zuverlässiger, da Benutzer sie nicht manipulieren können. Dies ist, was wir heute detailliert untersuchen werden.

Erste Schritte mit PHP Formularvalidierung

Lassen Sie uns mit einem einfachen Formular beginnen und unsere Validierung Schritt für Schritt aufbauen. Hier ist unser grundlegendes HTML-Formular:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name"><br>
Alter: <input type="text" name="age"><br>
<input type="submit" name="submit" value="Absenden">
</form>

Nun fügen wir ein bisschen PHP-Zauber hinzu, um dieses Formular zu validieren!

Validierungsfunktionen

Bevor wir uns spezifische Validierungen ansehen, erstellen wir einige Hilfsfunktionen:

function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

Diese test_input()-Funktion doet drei wichtige Dinge:

  1. trim() entfernt Leerzeichen von beiden Seiten einer Zeichenkette
  2. stripslashes() entfernt Backslashes
  3. htmlspecialchars() konvertiert spezielle Zeichen in HTML-Entities

Diese Schritte helfen, böswilligen Code zu verhindern und sicherzustellen, dass unsere Daten sauber sind.

Formular ist leer

Lassen Sie uns mit einer einfachen Überprüfung beginnen: Ist das Formular leer? So können wir das tun:

<?php
$name = $age = "";
$nameErr = $ageErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name ist erforderlich";
} else {
$name = test_input($_POST["name"]);
}

if (empty($_POST["age"])) {
$ageErr = "Alter ist erforderlich";
} else {
$age = test_input($_POST["age"]);
}
}
?>

In diesem Code:

  • Wir initialisieren Variablen, um unsere Formulardaten und Fehlermeldungen zu speichern.
  • Wir überprüfen, ob das Formular mit POST abgesendet wurde.
  • Für jedes Feld überprüfen wir, ob es leer ist. Wenn ja, setzen wir eine Fehlermeldung. Wenn nicht, reinigen wir die Eingabe mit unserer test_input()-Funktion.

Alter ist keine Zahl

Nun fügen wir eine spezifische Überprüfung für das Alter hinzu, um sicherzustellen, dass es sich um eine Zahl handelt:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
// ... vorherige Überprüfungen ...

if (empty($_POST["age"])) {
$ageErr = "Alter ist erforderlich";
} else {
$age = test_input($_POST["age"]);
if (!is_numeric($age)) {
$ageErr = "Alter muss eine Zahl sein";
}
}
}

Hier haben wir eine zusätzliche Überprüfung mit is_numeric() hinzugefügt, um sicherzustellen, dass das Alter tatsächlich eine Zahl ist. Wenn nicht, setzen wir eine entsprechende Fehlermeldung.

Alles zusammenfügen

Nun sehen wir, wie unser vollständiges Formularvalidierungsskript aussieht:

<?php
$name = $age = "";
$nameErr = $ageErr = "";

function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name ist erforderlich";
} else {
$name = test_input($_POST["name"]);
}

if (empty($_POST["age"])) {
$ageErr = "Alter ist erforderlich";
} else {
$age = test_input($_POST["age"]);
if (!is_numeric($age)) {
$ageErr = "Alter muss eine Zahl sein";
}
}
}
?>

<h2>PHP Formularvalidierungsbeispiel</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error"><?php echo $nameErr;?></span>
<br><br>
Alter: <input type="text" name="age">
<span class="error"><?php echo $ageErr;?></span>
<br><br>
<input type="submit" name="submit" value="Absenden">
</form>

<?php
echo "<h2>Ihre Eingabe:</h2>";
echo $name;
echo "<br>";
echo $age;
?>

Dieses Skript:

  1. Definiert Variablen und Funktionen
  2. Validiert das Formular, wenn es abgesendet wird
  3. Zeigt das Formular mit Fehlermeldungen an, falls vorhanden
  4. Zeigt die validierten Eingaben an

Tabelle der Validierungsmethoden

Hier ist eine praktische Tabelle der häufigsten Validierungsmethoden in PHP:

Methode Beschreibung Beispiel
empty() Überprüft, ob eine Variable leer ist if (empty($var))
isset() Überprüft, ob eine Variable gesetzt und nicht NULL ist if (isset($var))
is_numeric() Überprüft, ob eine Variable eine Zahl oder eine numerische Zeichenkette ist if (is_numeric($var))
strlen() Gibt die Länge einer Zeichenkette zurück if (strlen($var) > 5)
preg_match() Führt eine reguläre Ausdrucksübereinstimmung durch if (preg_match("/pattern/", $var))
filter_var() Filtert eine Variable mit einem angegebenen Filter if (filter_var($var, FILTER_VALIDATE_EMAIL))

Denken Sie daran, dass Formularvalidierung darum geht, die Datenintegrität zu gewährleisten und das Benutzererlebnis zu verbessern. Es ist wie ein Türsteher in einem Club - Sie möchten gute Daten hereinlassen und schlechte Daten draußen halten!

Als wir uns verabschieden, hoffe ich, dass dieser Tutorial Ihnen eine solide Grundlage in der PHP-Formularvalidierung gegeben hat. Denken Sie daran, Übung macht den Meister, also experimentieren Sie nicht mit verschiedenen Formularen und Validierungstechniken. Vorbei不久, werden Sie Formulare wie ein Profi validieren!

Frohes Coden und möge deine Formulare immer gültig sein!

Credits: Image by storyset