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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 175 fois - Téléchargée 25 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
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007

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 ???
Messages postés
4
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
15 juin 2006

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...
Messages postés
233
Date d'inscription
vendredi 2 juillet 2004
Statut
Membre
Dernière intervention
4 janvier 2007

Je l'ai mis dans le constructeur, pour qu'on oublie pas de le déclarer. Ca fait toujours une ligne de moins...
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Tit comment en cours de route: bizarre de un session_start dans ton constructeur et pas en haut de page...

@++

R@f
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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.