IMG-LOGO
공지사항 :

PHP 입출력, 폼 처리

lmkfox - 2025-07-27 07:05:27 12 Views 0 Comment

1. PHP의 입출력 (Input / Output)

PHP는 서버 사이드 스크립트 언어로, 주로 웹 서버를 통해 클라이언트(브라우저)와 데이터를 주고받습니다.

1.1 출력 (Output)

PHP의 출력은 주로 HTML로 이루어집니다. 클라이언트 브라우저에 데이터를 출력하려면 echo 또는 print를 사용합니다.

<?php
echo "Hello, World!";
print "PHP 출력 예제";
?>

  • echo: 여러 인수를 출력할 수 있으며 빠릅니다.

  • print: 한 인수만 허용하지만 표현식으로 사용할 수 있습니다.

1.2 입력 (Input)

PHP는 사용자로부터 데이터를 입력받을 수 있습니다. 일반적인 입력 방식은 다음과 같습니다:

  • 폼(Form) 입력

  • URL 쿼리 스트링 (GET 방식)

  • POST 데이터

  • 파일 업로드

  • JSON 데이터 (AJAX 등)

PHP는 이러한 데이터를 슈퍼글로벌(Superglobals)을 통해 접근합니다:

  • $_GET: URL의 쿼리 파라미터를 통해 전달된 데이터

  • $_POST: 폼의 POST 방식으로 전달된 데이터

  • $_REQUEST: GET, POST, COOKIE 데이터를 모두 포함

  • $_FILES: 업로드된 파일 정보

  • $_SERVER: 서버 및 실행 환경 정보

예시:

<?php
$name = $_GET['name']; // http://example.com?name=Alice
echo "이름: " . $name;
?>


2. 폼 (HTML Form)과 PHP

HTML 폼은 사용자로부터 데이터를 입력받아 서버로 전송하기 위한 도구입니다. 폼의 전송 방식에는 GET과 POST가 있습니다.

2.1 기본 폼 예제

<form method="post" action="process.php">
  <label>이름: <input type="text" name="name"></label>
  <input type="submit" value="전송">
</form>

위 폼은 사용자가 입력한 name 값을 POST 방식으로 process.php로 전송합니다.

2.2 폼 처리 (PHP)

process.php 파일:

<?php
$name = $_POST['name'];
echo "입력한 이름: " . htmlspecialchars($name);
?>

  • htmlspecialchars(): XSS 공격 방지를 위해 HTML 특수문자를 이스케이프합니다.


3. HTTP와 PHP

PHP는 HTTP 프로토콜 위에서 작동합니다. HTTP는 클라이언트(웹 브라우저)와 서버 간에 데이터를 주고받는 프로토콜입니다.

3.1 HTTP 요청 방식

  • GET: 데이터를 URL에 쿼리 스트링으로 첨부하여 전송

  • POST: 데이터를 HTTP 본문(body)에 담아 전송

  • PUT, DELETE: REST API 등에서 사용, PHP에서는 php://input 등으로 접근 가능

3.2 PHP와 HTTP 헤더

PHP는 HTTP 헤더를 조작할 수 있습니다.

// 리디렉션
header("Location: thankyou.php");
exit;

// 콘텐츠 타입 설정
header("Content-Type: application/json");

3.3 상태 코드 설정

http_response_code(404); // 404 Not Found

또는

header("HTTP/1.1 404 Not Found");


4. 실전 예제: 간단한 폼 처리

form.html

<form method="post" action="submit.php">
  <input type="text" name="email" placeholder="이메일 입력">
  <input type="submit" value="가입">
</form>

submit.php

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $email = trim($_POST['email'] ?? '');

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "올바른 이메일 주소가 아닙니다.";
    } else {
        echo "입력된 이메일: " . htmlspecialchars($email);
    }
}
?>


요약

항목

설명

echo, print

PHP의 출력 함수

$_GET, $_POST

클라이언트로부터의 입력 처리

<form>

입력 폼 구성

header()

HTTP 응답 헤더 설정

http_response_code()

상태 코드 지정


댓글