Rumah >pembangunan bahagian belakang >tutorial php >Panduan Pemula untuk Pengendalian Borang PHP dengan Sesi

Panduan Pemula untuk Pengendalian Borang PHP dengan Sesi

Patricia Arquette
Patricia Arquetteasal
2024-12-04 21:11:111022semak imbas

Beginner

Jika anda baru menggunakan PHP dan ingin belajar cara mengendalikan borang dan bekerja dengan data sesi, panduan ini adalah untuk anda. Kami akan membina projek mudah di mana pengguna boleh menyerahkan borang, menyimpan data dalam sesi, melihatnya dan memadamkannya kemudian. Pada penghujung tutorial ini, anda akan memahami asas pengendalian borang PHP, pengesahan, pembersihan dan sesi.


Apakah Pengendalian Borang dalam PHP?

Pengendalian borang merujuk kepada proses menangkap data yang diserahkan melalui borang HTML dan memprosesnya dalam bahasa sebelah pelayan seperti PHP. Ini termasuk:

  1. Mengambil data borang: Menggunakan kaedah seperti GET atau POST.
  2. Mengesahkan data: Memastikan input memenuhi kriteria tertentu.
  3. Mencuci data: Membersihkan input untuk mengelakkan isu keselamatan seperti serangan XSS.
  4. Menyimpan atau memproses data: Menyimpannya dalam sesi, pangkalan data atau memaparkannya kembali kepada pengguna.

Apakah Sesi dalam PHP?

Sesi ialah cara untuk menyimpan maklumat (pembolehubah) merentas berbilang halaman untuk seorang pengguna. Tidak seperti kuki, data sesi disimpan pada pelayan, menjadikannya lebih selamat. Untuk mula menggunakan sesi dalam PHP, kami menggunakan fungsi session_start().


Projek: Borang PHP dengan Pengendalian Sesi

Projek kami melibatkan ciri-ciri berikut:

  • Seorang pengguna mengisi borang dengan maklumat peribadi.
  • Data yang diserahkan disahkan dan dibersihkan.
  • Data yang sah disimpan dalam satu sesi.
  • Pengguna boleh melihat atau memadam data sesi.

Struktur Fail

Berikut ialah struktur projek kami:

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

Langkah 1: Mencipta Borang (index.php)

Fail index.php mengandungi borang HTML mudah di mana pengguna boleh memasukkan butiran mereka. Ini kodnya:

<?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>

Langkah 4: Memadam Data Sesi (delete_session.php)

Fail ini memusnahkan data sesi.

<?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>

Konsep Utama Dilindungi

  1. Pengendalian Borang:

    • Mengambil data menggunakan kaedah GET.
    • Mengesahkan input dengan syarat dan penapis.
    • Membersihkan input dengan htmlspecialchars().
  2. Sesi:

    • Memulakan sesi dengan session_start().
    • Menyimpan data dalam

tatasusunan $_SESSION.

  • Melihat data sesi.
  • Memadamkan data sesi menggunakan session_unset() dan session_destroy().

Kesimpulan

Projek ini menunjukkan asas pengendalian borang PHP dan pengurusan sesi. Dengan konsep ini, anda boleh membina aplikasi yang lebih kompleks yang mengendalikan input pengguna dengan selamat dan cekap. Eksperimen dengan kod dan cuba lanjutkan dengan menambahkan ciri seperti penyepaduan pangkalan data atau pengesahan yang lebih maju.

Selamat pengekodan! ?

Atas ialah kandungan terperinci Panduan Pemula untuk Pengendalian Borang PHP dengan Sesi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn