Heim >Backend-Entwicklung >PHP-Tutorial >Anfängerleitfaden zum Umgang mit PHP-Formularen mit Sitzungen

Anfängerleitfaden zum Umgang mit PHP-Formularen mit Sitzungen

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 21:11:111022Durchsuche

Beginner

Wenn Sie PHP-Neuling sind und lernen möchten, wie Sie mit Formularen umgehen und mit Sitzungsdaten arbeiten, ist dieser Leitfaden genau das Richtige für Sie. Wir erstellen ein einfaches Projekt, bei dem ein Benutzer ein Formular senden, die Daten in einer Sitzung speichern, anzeigen und später löschen kann. Am Ende dieses Tutorials werden Sie die Grundlagen der PHP-Formularverarbeitung, Validierung, Bereinigung und Sitzungen verstehen.


Was ist Formularverarbeitung in PHP?

Formularverarbeitung bezieht sich auf den Prozess der Erfassung von über ein HTML-Formular übermittelten Daten und deren Verarbeitung in einer serverseitigen Sprache wie PHP. Dazu gehört:

  1. Abrufen der Formulardaten:Verwendung von Methoden wie GET oder POST.
  2. Validierung der Daten:Sicherstellen, dass die Eingabe bestimmte Kriterien erfüllt.
  3. Bereinigung der Daten:Bereinigung der Eingabe, um Sicherheitsprobleme wie XSS-Angriffe zu verhindern.
  4. Speichern oder Verarbeiten der Daten:Speichern in Sitzungen, Datenbanken oder Anzeigen für den Benutzer.

Was sind Sitzungen in PHP?

Sitzungen sind eine Möglichkeit, Informationen (Variablen) über mehrere Seiten hinweg für einen einzelnen Benutzer zu speichern. Im Gegensatz zu Cookies werden Sitzungsdaten auf dem Server gespeichert, was ihn sicherer macht. Um mit der Verwendung von Sitzungen in PHP zu beginnen, verwenden wir die Funktion session_start().


Das Projekt: PHP-Formular mit Session-Handling

Unser Projekt umfasst die folgenden Funktionen:

  • Ein Benutzer füllt ein Formular mit persönlichen Informationen aus.
  • Die übermittelten Daten werden validiert und bereinigt.
  • Gültige Daten werden in einer Sitzung gespeichert.
  • Benutzer können die Sitzungsdaten anzeigen oder löschen.

Dateistruktur

Hier ist die Struktur unseres Projekts:

project-folder/
│
├── index.php           # Form page
├── submit.php          # Form handling and session storage
├── view_session.php    # Viewing session data
├── delete_session.php  # Deleting session data

Schritt 1: Erstellen des Formulars (index.php)

Die Datei index.php enthält ein einfaches HTML-Formular, in das Benutzer ihre Daten eingeben können. Hier ist der Code:

<?php session_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP Form with Session Handling</title>
</head>
<body>
    <h1>Submit Your Information</h1>
    <!-- Form Section for User Input -->
    <form method="get" action="submit.php">
        <label for="name">Name:</label><br>
        <input type="text">




<hr>

<h3>
  
  
  Step 2: Handling Form Submission (submit.php)
</h3>

<p>This file processes the submitted form data, validates it, and stores it in a session. Here's the code:<br>
</p>

<pre class="brush:php;toolbar:false"><?php
session_start();

// Initialize error messages and data variables
$error_name = "";
$error_age = "";
$error_email = "";
$error_website = "";
$name = $age = $email = $website = $gender = $comments = $hobbies = "";

// Sanitize and validate the form data
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    // Sanitize inputs
    $name = htmlspecialchars(trim($_GET['name']));
    $age = htmlspecialchars(trim($_GET['age']));
    $email = htmlspecialchars(trim($_GET['email']));
    $website = htmlspecialchars(trim($_GET['website']));
    $gender = isset($_GET['gender']) ? $_GET['gender'] : 'No gender selected.';
    $hobbies = isset($_GET['hobbies']) ? $_GET['hobbies'] : ['No hobby selected.'];
    $comments = htmlspecialchars(trim($_GET['comments']));

    // Validation checks
    if (empty($name)) {
        $error_name = "Name is required.";
    }

    if (empty($age) || !filter_var($age, FILTER_VALIDATE_INT) || $age <= 0) {
        $error_age = "Valid age is required.";
    }

    if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $error_email = "Valid email is required.";
    }

    if (empty($website) || !filter_var($website, FILTER_VALIDATE_URL)) {
        $error_website = "Valid website URL is required.";
    }

    // If no errors, store data in session
    if (empty($error_name) && empty($error_age) && empty($error_email) && empty($error_website)) {
        // Store data in session
        $_SESSION['name'] = $name;
        $_SESSION['age'] = $age;
        $_SESSION['email'] = $email;
        $_SESSION['website'] = $website;
        $_SESSION['gender'] = $gender;
        $_SESSION['hobbies'] = implode(", ", $hobbies);
        $_SESSION['comments'] = $comments;
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Submission Result</title>
</head>
<body>
    <h1>Form Submission Result</h1>

    <!-- Show Errors if any -->
    <?php
    if ($error_name) {
        echo "<p>




<hr>

<h3>
  
  
  Step 3: Viewing Session Data (view_session.php)
</h3>

<p>This file displays session data stored on the server.<br>
</p>

<pre class="brush:php;toolbar:false"><?php session_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>View Session Data</title>
</head>
<body>
    <h1>View Stored Session Data</h1>

    <?php
    if (isset($_SESSION['name'])) {
        echo "<p><strong>Name:</strong> " . $_SESSION['name'] . "</p>";
        echo "<p><strong>Age:</strong> " . $_SESSION['age'] . "</p>";
        echo "<p><strong>Email:</strong> " . $_SESSION['email'] . "</p>";
        echo "<p><strong>Website:</strong> <a href='" . $_SESSION['website'] . "' target='_blank'>" . $_SESSION['website'] . "</a></p>";
        echo "<p><strong>Gender:</strong> " . $_SESSION['gender'] . "</p>";
        echo "<p><strong>Hobbies:</strong> " . $_SESSION['hobbies'] . "</p>";
        echo "<p><strong>Comments:</strong> " . $_SESSION['comments'] . "</p>";
    } else {
        echo "<p>No session data found!</p>";
    }
    ?>

    <br><br>
    <a href="index.php">Go Back</a>
</body>
</html>

Schritt 4: Sitzungsdaten löschen (delete_session.php)

Diese Datei zerstört die Sitzungsdaten.

<?php
session_start();
session_unset(); // Remove all session variables
session_destroy(); // Destroy the session
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Session Deleted</title>
</head>
<body>
    <h1>Session Data Deleted</h1>
    <p>All session data has been deleted successfully.</p>
    <br><br>
    <a href="index.php">Go Back</a>
</body>
</html>

Behandelte Schlüsselkonzepte

  1. Formularbearbeitung:

    • Abrufen von Daten mit der GET-Methode.
    • Eingaben mit Bedingungen und Filtern validieren.
    • Bereinigung von Eingaben mit htmlspecialchars().
  2. Sitzungen:

    • Eine Sitzung mit session_start() starten.
    • Speichern von Daten in

das $_SESSION-Array.

  • Sitzungsdaten anzeigen.
  • Löschen von Sitzungsdaten mit session_unset() und session_destroy().

Abschluss

Dieses Projekt demonstriert die Grundlagen der PHP-Formularverarbeitung und Sitzungsverwaltung. Mit diesen Konzepten können Sie komplexere Anwendungen erstellen, die Benutzereingaben sicher und effizient verarbeiten. Experimentieren Sie mit dem Code und versuchen Sie, ihn zu erweitern, indem Sie Funktionen wie Datenbankintegration oder erweiterte Validierung hinzufügen.

Viel Spaß beim Codieren! ?

Das obige ist der detaillierte Inhalt vonAnfängerleitfaden zum Umgang mit PHP-Formularen mit Sitzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn