PHP

PHP 슈퍼글로벌 변수 이해하기

thebasics 2024. 8. 28. 10:00

목차
1. PHP 슈퍼글로벌 변수란?
   - 슈퍼글로벌 변수란?
   - PHP에서의 슈퍼글로벌 변수
2. $_GET, $_POST, $_SESSION, $_COOKIE 사용법
   - $_GET 사용법
   - $_POST 사용법
   - $_SESSION 사용법
   - $_COOKIE 사용법
3. 폼 데이터 처리 예제
   - GET 방식으로 데이터 처리
   - POST 방식으로 데이터 처리
   - 세션 데이터 저장 및 접근
4. 코드 예제
5. 결론 및 추가 학습 자료


1. PHP 슈퍼글로벌 변수란?

슈퍼글로벌 변수란?

슈퍼글로벌 변수는 PHP에서 전역적으로 사용 가능한 내장 변수입니다. 이 변수들은 모든 스코프에서 접근할 수 있으며, 주로 사용자 입력 데이터, 세션 정보, 쿠키 데이터 등을 저장하고 처리하는 데 사용됩니다. 슈퍼글로벌 변수는 '$' 기호와 함께 사용되며, PHP에서 미리 정의되어 있어 별도의 초기화 없이 바로 사용할 수 있습니다.

PHP에서의 슈퍼글로벌 변수

PHP에서 제공하는 대표적인 슈퍼글로벌 변수는 '$_GET', '$_POST', '$_SESSION', '$_COOKIE' 등입니다. 이 변수들은 각각의 특정 목적에 맞게 설계되어 있으며, 웹 애플리케이션에서 중요한 역할을 합니다.


2. $_GET, $_POST, $_SESSION, $_COOKIE 사용법

$_GET 사용법

'$_GET' 변수는 URL의 쿼리스트링을 통해 전달된 데이터를 저장합니다. GET 방식은 주로 간단한 데이터 전송에 사용되며, 데이터는 URL에 노출됩니다.

<?php
// URL: example.com?name=LearnCode&age=30
$name = $_GET['name'];
$age = $_GET['age'];

echo "이름: $name, 나이: $age";
?>

이 예제에서는 URL의 쿼리스트링에서 'name'과 'age' 값을 가져와 출력합니다.

$_POST 사용법

'$_POST' 변수는 HTTP POST 요청을 통해 전달된 데이터를 저장합니다. POST 방식은 주로 폼 데이터를 전송할 때 사용되며, 데이터는 URL에 노출되지 않습니다.

<?php
$name = $_POST['name'];
$email = $_POST['email'];

echo "이름: $name, 이메일: $email";
?>

이 예제에서는 폼 데이터를 POST 방식으로 전송하고, '$_POST' 변수를 통해 데이터를 가져와 출력합니다.

$_SESSION 사용법

'$_SESSION' 변수는 사용자별 세션 데이터를 저장하는 데 사용됩니다. 세션은 서버 측에 데이터를 저장하며, 사용자가 브라우저를 닫기 전까지 유지됩니다.

<?php
session_start(); // 세션 시작

$_SESSION['username'] = 'LearnCode';
$_SESSION['loggedin'] = true;

echo "세션에 저장된 사용자 이름: " . $_SESSION['username'];
?>

이 예제에서는 세션에 사용자 이름과 로그인 상태를 저장하고, 이를 출력합니다.

$_COOKIE 사용법

'$_COOKIE' 변수는 클라이언트 측에 저장된 쿠키 데이터를 가져오는 데 사용됩니다. 쿠키는 브라우저에 저장되며, 사용자가 다시 방문할 때 서버로 전송됩니다.

<?php
setcookie("user", "LearnCodeEasy", time() + 3600); // 1시간 동안 유지되는 쿠키 설정

if (isset($_COOKIE['user'])) {
    echo "쿠키에 저장된 사용자 이름: " . $_COOKIE['user'];
} else {
    echo "쿠키가 설정되지 않았습니다.";
}
?>

이 예제에서는 'setcookie' 함수를 사용해 쿠키를 설정하고, '$_COOKIE' 변수를 통해 쿠키 데이터를 가져와 출력합니다.


3. 폼 데이터 처리 예제

GET 방식으로 데이터 처리

GET 방식은 주로 데이터를 URL 쿼리스트링에 포함시켜 전송하며, 간단한 데이터 전송에 적합합니다.

<form action="process_get.php" method="get">
    이름: <input type="text" name="name">
    나이: <input type="text" name="age">
    <input type="submit" value="전송">
</form>

'process_get.php' 파일:

<?php
$name = $_GET['name'];
$age = $_GET['age'];

echo "이름: $name, 나이: $age";
?>

이 폼에서는 사용자가 입력한 데이터를 GET 방식으로 전송하며, 'process_get.php'에서 '$_GET' 변수로 데이터를 처리합니다.

POST 방식으로 데이터 처리

POST 방식은 주로 폼 데이터를 전송할 때 사용되며, GET 방식보다 보안이 강화됩니다. 데이터는 URL에 노출되지 않습니다.

<form action="process_post.php" method="post">
    이름: <input type="text" name="name">
    이메일: <input type="email" name="email">
    <input type="submit" value="전송">
</form>

'process_post.php' 파일:

<?php
$name = $_POST['name'];
$email = $_POST['email'];

echo "이름: $name, 이메일: $email";
?>

이 폼에서는 사용자가 입력한 데이터를 POST 방식으로 전송하며, 'process_post.php'에서 '$_POST' 변수로 데이터를 처리합니다.

세션 데이터 저장 및 접근

세션을 사용하면 서버 측에 데이터를 저장하여, 사용자별 데이터를 유지할 수 있습니다. 사용자가 로그인한 후, 세션에 사용자 정보를 저장하고 이후 페이지에서도 이를 참조할 수 있습니다.

<?php
// login.php
session_start();

if ($_POST['username'] == 'admin' && $_POST['password'] == '1234') {
    $_SESSION['username'] = 'admin';
    $_SESSION['loggedin'] = true;
    echo "로그인 성공!";
} else {
    echo "로그인 실패!";
}
?>

로그인에 성공하면 세션에 사용자 정보를 저장하고, 이후 페이지에서도 이 정보를 유지할 수 있습니다.


4. 코드 예제

슈퍼글로벌 변수를 활용한 종합적인 예제를 작성해보겠습니다.

<?php
// 세션 시작
session_start();

// GET 방식으로 데이터 처리
if (isset($_GET['action']) && $_GET['action'] == 'submit_get') {
    $name = $_GET['name'];
    $age = $_GET['age'];
    echo "GET - 이름: $name, 나이: $age\n";
}

// POST 방식으로 데이터 처리
if (isset($_POST['action']) && $_POST['action'] == 'submit_post') {
    $name = $_POST['name'];
    $email = $_POST['email'];
    echo "POST - 이름: $name, 이메일: $email\n";
}

// 세션 데이터 저장
if (!isset($_SESSION['visited'])) {
    $_SESSION['visited'] = 0;
}
$_SESSION['visited']++;

echo "이 페이지를 " . $_SESSION['visited'] . "번 방문했습니다.\n";

// 쿠키 설정 및 접근
setcookie("language", "Korean", time() + 3600);

if (isset($_COOKIE['language'])) {
    echo "쿠키에 저장된 언어: " . $_COOKIE['language'] . "\n";
}
?>

코드 분석:
- GET과 POST 방식으로 데이터를 처리하며, 각각의 방식에 따라 다른 메시지를 출력합니다.
- 세션을 사용하여 페이지 방문 횟수를 추적하고, 이를 출력합니다.
- 쿠키를 설정하고, 저장된 쿠키 값을 출력합니다.


5. 결론 및 추가 학습 자료

이번 글에서는 PHP에서 슈퍼글로벌 변수를 사용하는 방법에 대해 알아보았습니다. 슈퍼글로벌 변수는 웹 애플리케이션에서 중요한 역할을 하며, 사용자의 입력 데이터, 세션 정보, 쿠키 데이터 등을 효율적으로 처리할 수 있습니다. '$_GET', '$_POST', '$_SESSION', '$_COOKIE' 변수를 이해하고 활용함으로써 더욱 강력하고 유연한 웹 애플리케이션을 개발할 수 있습니다.

추가 학습 자료:
- [PHP 공식 문서](https://www.php.net/manual/en/reserved.variables.php) PHP 슈퍼글로벌 변수에 대한 공식 문서입니다.
- [W3Schools PHP 슈퍼글로벌 튜토리얼](https://www.w3schools.com/php/php_superglobals.asp) PHP 슈퍼글로벌 변수의 기초부터 고급 활용까지 다루는 튜토리얼입니다.
- [GeeksforGeeks PHP 슈퍼글로벌 변수](https://www.geeksforgeeks.org/php-superglobals/) 다양한 PHP 슈퍼글로벌 변수에 대한 설명과 예제를 제공합니다.


이제 PHP 슈퍼글로벌 변수에 대한 기본 개념을 이해했으니, 이를 바탕으로 더 복잡한 데이터 처리와 사용자 관리를 수행할 수 있습니다. 지속적인 학습을 통해 PHP의 모든 가능성을 탐구해보시길 바랍니다!

반응형

'PHP' 카테고리의 다른 글

PHP로 폼 데이터 처리 및 유효성 검사하기  (2) 2024.08.30
PHP로 MySQL 데이터베이스 연동하기  (0) 2024.08.29
PHP 배열 다루기  (2) 2024.08.27
PHP 함수 작성 및 사용하기  (0) 2024.08.26
PHP 반복문 활용하기  (0) 2024.08.25