Zum Inhalt springen

PHP-Formularvalidierung

Die Formularvalidierung ist ein wesentlicher Bestandteil der Webentwicklung und stellt sicher, dass die von Benutzern eingegebenen Daten vor der Verarbeitung korrekt und vollständig sind. PHP ist eine beliebte serverseitige Skriptsprache, die eine Vielzahl von Methoden zur Formularvalidierung bietet. In diesem Artikel werden wir den PHP-Formularvalidierungsprozess im Detail untersuchen und Codebeispiele bereitstellen, die Ihnen bei der Implementierung auf Ihrer eigenen Website helfen.

Die Bedeutung der PHP-Formularvalidierung

Die Formularvalidierung ist aus mehreren Gründen wichtig. Sie hilft sicherzustellen, dass die von Benutzern eingegebenen Daten korrekt und vollständig sind, was das Fehlerrisiko verringern und die allgemeine Benutzererfahrung verbessern kann. Darüber hinaus kann die Formularvalidierung die Sicherheit Ihrer Website erhöhen, indem sie bösartige Benutzer daran hindert, schädliche Daten einzureichen.

Der PHP-Formularvalidierungsprozess

Der PHP-Formularvalidierungsprozess umfasst in der Regel die folgenden Schritte:

  1. Erstellen Sie ein Formular in HTML
  2. Schreiben Sie ein PHP-Skript zur Verarbeitung der Formulardaten
  3. Verwenden Sie PHP-Funktionen zur Validierung der Formulardaten
  4. Zeigen Sie Fehlermeldungen an, wenn die Formulardaten ungültig sind

Validierung von Formulardaten mit PHP-Funktionen

PHP bietet mehrere integrierte Funktionen zur Formularvalidierung, darunter:

  1. filter_var() - Validiert Variablen mit Filtern
  2. is_numeric() - Prüft, ob ein Wert eine Zahl ist
  3. is_string() - Prüft, ob ein Wert ein String ist
  4. trim() - Entfernt Leerzeichen am Anfang und Ende eines Strings
  5. htmlspecialchars() - Konvertiert Sonderzeichen in HTML-Entitäten, um Cross-Site-Scripting-(XSS)-Angriffe zu verhindern

Beispiel: PHP-Formularvalidierungscode

Hinweis: Aktualisieren Sie die Datenbankverbindungsdaten und stellen Sie sicher, dass Ihre Datenbank eine users-Tabelle mit den Spalten name, email, gender und comment enthält, bevor Sie dieses Beispiel ausführen.

php
<?php
// Database connection setup
$link = mysqli_connect("localhost", "username", "password", "database");
if (!$link) {
    die("Connection failed: " . mysqli_connect_error());
}

// Define variables and initialize with empty values
$name = $email = $gender = $comment = $website = "";
$name_err = $email_err = $gender_err = $comment_err = "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
    // Validate name
    if(empty(trim($_POST["name"] ?? ""))){
        $name_err = "Please enter your name.";
    } else{
        $name = trim($_POST["name"]);
    }
    
    // Validate email
    if(empty(trim($_POST["email"] ?? ""))){
        $email_err = "Please enter your email.";
    } elseif(!filter_var(trim($_POST["email"] ?? ""), FILTER_VALIDATE_EMAIL)) {
        $email_err = "Please enter a valid email address.";
    } else{
        $email = trim($_POST["email"]);
    }
    
    // Validate gender
    if(!isset($_POST["gender"]) || empty($_POST["gender"])){
        $gender_err = "Please select your gender.";
    } else{
        $gender = $_POST["gender"];
    }
    
    // Validate comment
    if(empty(trim($_POST["comment"] ?? ""))){
        $comment_err = "Please enter your comment.";
    } else{
        $comment = trim($_POST["comment"]);
    }
    
    // Check input errors before inserting in database
    if(empty($name_err) && empty($email_err) && empty($gender_err) && empty($comment_err)){
        // Prepare an insert statement
        $sql = "INSERT INTO users (name, email, gender, comment) VALUES (?, ?, ?, ?)";
         
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "ssss", $param_name, $param_email, $param_gender, $param_comment);
            
            // Set parameters
            $param_name = $name;
            $param_email = $email;
            $param_gender = $gender;
            $param_comment = $comment;
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Records created successfully. Redirect to landing page
                header("location: index.php");
                exit();
            } else{
                echo "Something went wrong. Please try again later.";
            }
        }
         
        // Close statement
        mysqli_stmt_close($stmt);
    }
}

// Close connection
mysqli_close($link);
?>
<!DOCTYPE html>
<html>
<head><title>PHP Form Validation</title></head>
<body>
<form method="post" action="<‌?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
    Name: <input type="text" name="name" value="<‌?php echo htmlspecialchars($name); ?>">
    <span class="error"><?php echo $name_err; ?></span><br><br>
    Email: <input type="text" name="email" value="<‌?php echo htmlspecialchars($email); ?>">
    <span class="error"><?php echo $email_err; ?></span><br><br>
    Gender:
    <input type="radio" name="gender" value="female"> Female
    <input type="radio" name="gender" value="male"> Male
    <span class="error"><?php echo $gender_err; ?></span><br><br>
    Comment: <textarea name="comment"><?php echo htmlspecialchars($comment); ?></textarea>
    <span class="error"><?php echo $comment_err; ?></span><br><br>
    <input type="submit" value="Submit">
</form>
</body>
</html>

Fehlerbehandlung bei der PHP-Formularvalidierung

Im vorherigen Beispiel haben wir Fehlermeldungen eingefügt, die angezeigt werden, wenn die Formulardaten ungültig sind. Es ist wichtig, Fehler angemessen zu behandeln, um dem Benutzer eine sinnvolle Rückmeldung zu geben.

Verbesserung der Benutzererfahrung mit PHP-Formularvalidierung

Neben der Sicherstellung der Genauigkeit der von Benutzern eingegebenen Daten kann die Formularvalidierung auch die allgemeine Benutzererfahrung verbessern. Sie können die Formularvalidierung beispielsweise verwenden, um:

  1. Echtzeit-Feedback an Benutzer bereitzustellen
  2. Ungültige Felder rot hervorzuheben
  3. Fehlermeldungen neben den entsprechenden Feldern anzuzeigen

Fazit

Zusammenfassend lässt sich sagen, dass die PHP-Formularvalidierung ein wesentlicher Bestandteil der Webentwicklung ist, der dazu beiträgt, die Genauigkeit und Sicherheit der von Benutzern eingegebenen Daten zu gewährleisten. Dank der Vielzahl integrierter Funktionen und der Fähigkeit, Fehler effektiv zu behandeln, macht PHP die Implementierung der Formularvalidierung auf der eigenen Website einfach. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Leitfaden bietet die notwendigen Informationen, um mit der PHP-Formularvalidierung zu beginnen.

Praxis

What are some key elements in PHP form validation?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.