> 백엔드 개발 > PHP 튜토리얼 > 세션을 사용한 PHP 양식 처리 초보자 가이드

세션을 사용한 PHP 양식 처리 초보자 가이드

Patricia Arquette
풀어 주다: 2024-12-04 21:11:11
원래의
1027명이 탐색했습니다.

Beginner

PHP를 처음 사용하고 양식 처리 및 세션 데이터 작업 방법을 배우고 싶다면 이 가이드가 적합합니다. 사용자가 양식을 제출하고, 세션에 데이터를 저장하고, 보고, 나중에 삭제할 수 있는 간단한 프로젝트를 구축하겠습니다. 이 튜토리얼을 마치면 PHP 양식 처리, 유효성 검사, 삭제 및 세션의 기본 사항을 이해하게 됩니다.


PHP의 양식 처리란 무엇입니까?

양식 처리란 HTML 양식을 통해 제출된 데이터를 캡처하여 PHP와 같은 서버측 언어로 처리하는 과정을 의미합니다. 여기에는 다음이 포함됩니다.

  1. 양식 데이터 가져오기: GET 또는 POST와 같은 방법 사용
  2. 데이터 유효성 검사: 입력이 특정 기준을 충족하는지 확인합니다.
  3. 데이터 삭제: XSS 공격과 같은 보안 문제를 방지하기 위해 입력을 정리합니다.
  4. 데이터 저장 또는 처리: 세션, 데이터베이스에 저장하거나 사용자에게 다시 표시합니다.

PHP의 세션이란 무엇입니까?

세션은 단일 사용자에 대해 여러 페이지에 걸쳐 정보(변수)를 저장하는 방법입니다. 쿠키와 달리 세션 데이터는 서버에 저장되므로 더욱 안전합니다. PHP에서 세션 사용을 시작하려면 session_start() 함수를 사용합니다.


프로젝트: 세션 처리가 포함된 PHP 양식

저희 프로젝트에는 다음 기능이 포함됩니다.

  • 사용자가 개인정보를 입력하여 양식을 작성합니다.
  • 제출된 데이터는 검증 및 삭제됩니다.
  • 세션에는 유효한 데이터가 저장됩니다.
  • 사용자는 세션 데이터를 보거나 삭제할 수 있습니다.

파일 구조

우리 프로젝트의 구조는 다음과 같습니다.

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
로그인 후 복사

1단계: 양식 만들기(index.php)

index.php 파일에는 사용자가 세부 정보를 입력할 수 있는 간단한 HTML 양식이 포함되어 있습니다. 코드는 다음과 같습니다.

<?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>
로그인 후 복사

4단계: 세션 데이터 삭제(delete_session.php)

이 파일은 세션 데이터를 파괴합니다.

<?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>
로그인 후 복사

다루는 주요 개념

  1. 양식 처리:

    • GET 메소드를 사용하여 데이터를 가져옵니다.
    • 조건 및 필터를 사용하여 입력 유효성을 검사합니다.
    • htmlspecialchars()로 입력을 삭제합니다.
  2. 세션:

    • session_start()로 세션 시작.
    • 데이터 저장

$_SESSION 배열.

  • 세션 데이터 보기.
  • session_unset() 및 session_destroy()를 사용하여 세션 데이터를 삭제합니다.

결론

이 프로젝트는 PHP 양식 처리 및 세션 관리의 기본 사항을 보여줍니다. 이러한 개념을 사용하면 사용자 입력을 안전하고 효율적으로 처리하는 보다 복잡한 애플리케이션을 구축할 수 있습니다. 코드를 실험하고 데이터베이스 통합이나 고급 검증과 같은 기능을 추가하여 코드를 확장해 보세요.

즐거운 코딩하세요! ?

위 내용은 세션을 사용한 PHP 양식 처리 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿