현재 위치: > 최신 기사 목록> Serialize 기능을 사용하여 PHP 세션 (세션)에 데이터를 저장하고 전달하는 방법은 무엇입니까?

Serialize 기능을 사용하여 PHP 세션 (세션)에 데이터를 저장하고 전달하는 방법은 무엇입니까?

gitbox 2025-05-27

PHP에서 세션은 다른 페이지간에 사용자 데이터를 저장하고 전달하는 일반적인 방법입니다. 세션을 사용하면 사용자와 서버의 여러 요청간에 상태를 유지할 수 있으며 각 요청에 대해 동일한 정보를 다시 계산하거나 얻을 필요가 없습니다.

때로는 배열 또는 객체와 같은 복잡한 데이터 구조를 세션에 저장해야합니다. PHP에서 직렬화 기능은 매우 유용하여 복잡한 데이터 유형을 문자열로 변환 하여이 데이터를 세션에 저장하고 후속 요청에서 원래 데이터 구조를 복원 할 수 있습니다.

Serialize 기능을 사용하여 PHP 세션에 데이터를 저장하십시오

직렬화 함수는 배열 또는 객체를 문자열로 변환하여 세션 (세션)에 저장 될 수 있습니다. 반대로, 비 제외 기능은 문자열을 원래 배열 또는 객체로 복원합니다.

다음은 데이터 저장에 Serialize 기능을 사용하고 PHP 세션을 통과하는 방법의 예입니다.

 <?php
// 대화를 시작하십시오
session_start();

// 복잡한 배열을 만듭니다
$data = [
    'username' => 'john_doe',
    'email' => '[email protected]',
    'preferences' => ['theme' => 'dark', 'notifications' => 'enabled']
];

// 사용 serialize 함수는 배열을 문자열로 변환합니다
$serialized_data = serialize($data);

// 직렬화 된 데이터를 세션에 저장하십시오
$_SESSION['user_data'] = $serialized_data;

// 인쇄 저장 데이터
echo 'Data has been serialized and stored in session.<br>';

// 전달 된 컨텐츠는 링크를 통해 액세스 할 수 있습니다
echo '<a href="https://gitbox.net/user_page.php">Go to user page</a>';
?>

위의 코드에서 먼저 사용자 정보가 포함 된 배열을 작성한 다음 Serialize 함수를 사용하여 문자열로 변환하고 문자열을 $ _session hyperglobal 배열에 저장합니다. 이런 식으로 사용자가 다른 페이지를 방문하면 데이터가 지속될 수 있습니다.

데이터 복구 방법

페이지가로드되면 비 제외 기능을 사용하여 저장된 직렬화 된 데이터를 복원 할 수 있습니다. 다음은이 작업을 수행하는 방법의 예입니다.

 <?php
// 대화를 시작하십시오
session_start();

// 사용자 데이터가 세션에 저장되어 있는지 확인하십시오
if (isset($_SESSION['user_data'])) {
    // 세션에서 직렬화 된 문자열 데이터를 가져옵니다
    $serialized_data = $_SESSION['user_data'];

    // 사용 unserialize 함수는 원래 배열로 복원합니다
    $data = unserialize($serialized_data);

    // 복구 된 데이터 인쇄
    echo 'Username: ' . $data['username'] . '<br>';
    echo 'Email: ' . $data['email'] . '<br>';
    echo 'Theme: ' . $data['preferences']['theme'] . '<br>';
    echo 'Notifications: ' . $data['preferences']['notifications'] . '<br>';
} else {
    echo 'No user data found in session.';
}

?>

이 예에서는 먼저 사용자 데이터가 $ _session 에 저장되어 있는지 확인합니다. 그것이 존재하는 경우, 우리는 비 제외 기능을 사용하여 직렬화 된 문자열을 배열로 복원하고 관련 사용자 정보를 출력합니다.

요약

SerializeUnserialize 기능을 사용하여 PHP 개발자는 복잡한 데이터 구조를 세션에 쉽게 저장하고 필요할 때이 데이터를 복구 할 수 있습니다. 이 접근법은 특히 사용자가 로그인 한 후 상태 또는 선호도를 유지 해야하는 경우 여러 페이지에서 데이터를 전달 해야하는 응용 프로그램에 매우 유용합니다.

세션을 사용하여 데이터를 저장할 때 세션의 보안을 보호하고 세션 납치 및 데이터 유출을 피하십시오.