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

0/5 (9 avis)

Snippet vu 4 299 fois - Téléchargée 26 fois

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

Ajouter un commentaire Commentaires
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
5 juin 2006 à 12:48
Direction le forum, car ta question n'a rien a voir avec ma source.
De plus, qu'elle est la liaison de ton site avec paypal, methode GET, POST ???
doclyv Messages postés 4 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 15 juin 2006
5 juin 2006 à 00:37
Hi!

Je n'ai pas encore testé ce code, je ne peux pas donner mon avis pour l'instant. Mais, présentement, j'ai un problème avec un formulaire espace-membre. Le problème, c'est que le client doit passer par Paypal pour valider sa transaction. Avant qu'il se dirige vers Paypal, j'aimerais qu'il complète un formulaire d'inscription et s'il n'est pas identifié, il ne peut avoir accès au contenu payant. Mon formulaire d'inscription fonctionne très bien, mais le problème, lorsque le client est authentifié, la page Paypal ne s'affiche pas pour compléter la transaction. Pouvez-vous me dire comment faire pour que le client complète mon formulaire d'inscription ou authentifié s'il était déjà inscrit, et tout de suite après qu'il se dirige vers Paypal. Si vous avez une réponse, n'hésitez pas à me l'envoyer par infosofa@yahoo.ca
Merci pour votre aide!
Doclyv...
massacr Messages postés 233 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 4 janvier 2007
28 mai 2006 à 23:08
Je l'ai mis dans le constructeur, pour qu'on oublie pas de le déclarer. Ca fait toujours une ligne de moins...
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
28 mai 2006 à 22:02
Salut!
Tit comment en cours de route: bizarre de un session_start dans ton constructeur et pas en haut de page...

@++

R@f
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
25 mai 2006 à 14:08
Vi, parce que ca serait bien plus utile de linéariser une bonne fois pour toute plutot que de faire du get/set à chaque instanciation.
Afficher les 9 commentaires

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.