8792 sujets

Développement web côté serveur, CMS

Bonjour a tous!

Alors j'ai un p'tit soucis...
J'ai créer une class Personnage en PHP5 que j'ai enregistré dans CPerso.php5.

Ma première page me permet de charger ma Class.
Après quoi si tout va bien le script redirige sur un seconde page qui elle utilise la fonction afficher() de ma Class Personnage
(J'éspère que c'est asez clair Smiley confused )
J'aimerai pouvoir utiliser cette class dans une suite de page, j'ai pensé aux variable SESSION.
Le code:

Chargement.php5:
----------------
include ("CPerso.php5");
$_SESSION['perso'] = new Personnage($_POST['nom']);
redirection("jouer.php5?session=$session");

-----------------------------------------------------

jouer.php5:
include ("CPerso.php5");
$_SESSION['perso']->afficher_perso();

-----------------------------------------------------

Voila en gros mon code simplifier, tout se passe bien sur la page Chargement mais sur la page jouer ma class n'éxiste tout simplement pas...
Je pense que j'y mis prend tout simplement mal pour faire ce que je veux mais je ne trouve rine sur google qui m'aide Smiley sweatdrop

Voila merci d'avance de vos conseil et idée Smiley smile
Modifié par DarkHerumor (09 Jan 2007 - 13:47)
On ne peut pas stocker un objet brut de fonderie comme ça, il faut d'abord le sérializer après création, puis le désérializer lorsqu'on veut l'utiliser
Ha ben je savais que je passais a coté d'un truc important...
J'avais vu 2 - 3 fois ces fonction serialize et unserialize mais je ne m'y était pas attardé...

Pour ceux que ça intéresse voila le fonctionnement Smiley cligne

Fichier création des classe:
--------------------------
include ("CPerso.php5");
$perso1 = new Personnage("Herumor");
$perso2 = new Personnage("DarkHerumor");
$_SESSION['perso1'] = serialize($perso1);
$_SESSION['perso2'] = serialize($perso2);

Fichier réception des classe:
---------------------------
include ("CPerso.php5");
$perso1 = unserialize($_SESSION['perso1']);
$perso1->afficher_perso();
$perso2 = unserialize($_SESSION['perso2']);
$perso2->afficher_perso();


Voila et tout marche très bien et c'est assez simple Smiley smile
Merci de ta lumière Smiley cligne
DarkHerumor a écrit :
Voila et tout marche très bien et c'est assez simple Smiley smile
Merci de ta lumière Smiley cligne
Par contre, attention aux problèmes potentiels si la classe est modifiée alors qu'un objet sérialisé existe toujours dans une session... (enfin je suppose, je n'ai jamais fait de sérialisation en PHP)
Oui surement pour ça qu'il faut dès le début du code unserialize l'objet pour le serialize à la fin du code, normalement il ne devrait pas y avoir le moindre problème. Après si quelqu'un à mieux que les variables SESSION je suis preneur Smiley lol