Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction sérialisée en combinaison avec la session PHP (session)

Comment utiliser la fonction sérialisée en combinaison avec la session PHP (session)

gitbox 2025-05-27

En PHP, la session est un moyen courant de stocker et de passer les données utilisateur entre différentes pages. En utilisant la session , nous sommes en mesure de maintenir l'état entre plusieurs demandes de l'utilisateur et du serveur, en évitant la nécessité de recalculer ou d'obtenir les mêmes informations pour chaque demande.

Parfois, nous devons stocker des structures de données complexes, telles que des tableaux ou des objets, dans une session. Dans PHP, la fonction sérialisée est très utile, ce qui convertit les types de données complexes en chaînes, permettant à ces données d'être stockées dans une session et restaure la structure de données d'origine dans les demandes suivantes.

Utilisez la fonction sérialize pour stocker des données dans les séances PHP

La fonction Serialize peut convertir un tableau ou un objet en une chaîne, ce qui lui permet d'être stocké dans une session (session). Inversement, la fonction non sérialisée restaure la chaîne sur le tableau ou l'objet d'origine.

Voici un exemple de la façon d'utiliser la fonction sérialisée pour le stockage des données et le passage d'une session PHP.

 <?php
// Lancer une conversation
session_start();

// Créer un tableau complexe
$data = [
    'username' => 'john_doe',
    'email' => '[email protected]',
    'preferences' => ['theme' => 'dark', 'notifications' => 'enabled']
];

// utiliser serialize La fonction convertit le tableau en chaîne
$serialized_data = serialize($data);

// Stocker des données sérialisées en une session
$_SESSION['user_data'] = $serialized_data;

// Imprimer les données stockées
echo 'Data has been serialized and stored in session.<br>';

// Le contenu livré est accessible via des liens
echo '<a href="https://gitbox.net/user_page.php">Go to user page</a>';
?>

Dans le code ci-dessus, nous créons d'abord un tableau contenant des informations utilisateur, puis utilisons la fonction Serialize pour la convertir en une chaîne et stocker la chaîne dans le tableau hyperglobal $ _Session . De cette façon, lorsque l'utilisateur visite d'autres pages, les données pourront être persistées.

Comment récupérer les données

Lorsque la page se charge, nous pouvons utiliser la fonction non sérialisée pour restaurer les données sérialisées stockées. Voici un exemple de la façon de procéder.

 <?php
// Lancer une conversation
session_start();

// Vérifiez si les données utilisateur sont stockées dans la session
if (isset($_SESSION['user_data'])) {
    // Obtenez des données de chaîne sérialisées d&#39;une session
    $serialized_data = $_SESSION['user_data'];

    // utiliser unserialize La fonction le restaure au tableau d&#39;origine
    $data = unserialize($serialized_data);

    // Imprimer des données récupérées
    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.';
}

?>

Dans cet exemple, nous vérifions d'abord si les données utilisateur sont stockées dans $ _Session . S'il existe, nous utilisons la fonction non désérialisée pour restaurer la chaîne sérialisée dans un tableau et publier les informations utilisateur pertinentes.

résumé

En utilisant des fonctions de sérialisation et de non-série , les développeurs PHP peuvent facilement stocker des structures de données complexes en sessions et récupérer ces données en cas de besoin. Cette approche est très utile pour les applications qui doivent transmettre des données sur plusieurs pages, surtout si les utilisateurs doivent conserver leur statut ou leurs préférences après la connexion.

Lorsque vous utilisez la session pour stocker les données, faites attention à la protection de la sécurité de la session et à l'évitement de détournement de session et de violations de données.