Bonjour, j'utilise AMFPHP pour mes echanges flash->php, dans mes variables de session je stock mes instance de classe par exemple mysql et user.
Le probleme est que ej pense que AMFPHP fait un session_start avant d'éxécuter mes script, donc je ne peux pas lui charger les définitions de classe avant le session_start,j'ai essayé avec les fonction serialize et unserialize mais sans succes.
Ma classe Main
ma classe mysql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php function __autoload($class) { $CLASS=strtolower($class); require_once "/".$CLASS."/".$class.".php"; session_start(); class Main { function Main() { } function getContact() { $mysql=$_SESSION["mysql"]; settype($mysql,"object"); $res=$mysql->GetContact($_SESSION["myUser"]->Id); echo "mysql ".$mysql; } } ?>
Le résult de AMFPHP
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php require_once("/variable/Variable.php"); class Mysql { function Mysql() { } function Connexion() { $server = "localhost"; $basededonnees = "111" ; $utilisateur = "111" ; $mdp = "" ; $connection = mysql_pconnect($server,$utilisateur, $mdp)or die ("erreur de connexion"); mysql_select_db($basededonnees, $connection) ; return $connection ; } function GetUser($Id) { $ID=new Variable($Id); $Id=$ID->getVar(); $requete = "SELECT id_utilisateur as Id, nom_utilisateur as nom, prenom_utilisateur as prenom, email_utilisateur as email, telephone_utilisateur as telephone, gsm_utilisateur as gsm FROM utilisateur WHERE id_utilisateur = '$Id' "; $res= mysql_query($requete,$this->Connexion() )OR die(mysql_error()); return $res; }
Quand j'execute mes script sans AMFPHP j'ai aucun probleme au niveau des chargement de mes définition de classe et mes methodes sont accéssiblent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 (Object)#0 message = "faultCode:INVALID_AMF_MESSAGE faultString:'Invalid AMF message' faultDetail:' Fatal error: Main::getContact(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Mysql" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in C:\vnd\php\services\vnd\web\Main.php on line 14 '" name = "Error" rootCause = (null)
Partager