Garder les paramètres d'une class à travers plusieurs pages.

Contenu du snippet

J'ai créé une class permettant de créer une authentification. Mais problème, comment garder ses paramètres à travers plusieurs pages. J'ai donc créé une autre class, permettant de 'sérializer' une class passée en paramètre, et de garder cette 'sérialization' dans une session.
Grace à cette class, il est possible de garder une autre class à travers plusieurs pages, très facilement.

Source / Exemple :


/* file:class_seria.php */
<?php
class seria {
    var $seria;
    var $unseria;
    var $result;
    function seria($class,$nom_session) {
        @session_start();
        if($class===FALSE) {
            $this->unseria = unserialize($_SESSION[$nom_session.'seria']);
            $this->result = 'unseria';
        }
        else {
            $this->seria = serialize($class);
            $_SESSION[$nom_session.'seria'] = $this->seria;
            $this->result = 'seria';
        }
    }
    function detruire($nom_session) {
        if($_SESSION[$nom_session.'seria'])
            unset($_SESSION[$nom_session.'seria']);
    }
        
}
?>

/* file:class_exemple.php */
<?php
class class_exemple {
    var $variable;
}
?>

/* file:index.php */

<?php
include('class_exemple.php');
$class_exemple = new class_exemple;
$class_exemple->variable = 'test';

include('class_seria.php');
$seria = new seria($class_exemple,'class_exemple'); //Sérialization de la class class_exemple, et stockage dans une variable
?>
<a href="page2.php">Page 2</a>

/* file:page2.php */

<?php
include('class_exemple.php');
include('class_seria.php');

$seria = new seria(FALSE,'class_exemple'); //Désérialization de la class class_exemple.
if($seria->result=='unseria')
    $class_exemple = $seria->unseria;

echo $class_exemple->variable; //Affiche test
?>

Conclusion :


Cette class fonctionne je crois avec n'importe qu'elle class, mais il faut faire attention aux class qui se connectent à des bases de données. Il doit falloir fermer puis réouvrir les connexions.
J'accueillerais volontier vos commentaires, positifs ou négatifs.
A bientôt

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.