Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1506 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de session avec un objet Soap

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de session avec un objet Soap

n°1927279
jordel
Elven Powaaa
Posté le 28-09-2009 à 13:23:37  profilanswer
 

Bonjour à tous,
 
Alors... je suis en train de bosser sur du SOAP (extension php_soap) et j'obtiens le message suivant lorsque j'essaie d'utiliser un objet SOAP passé en session :

Code :
  1. supplied argument is not a valid sdl resource


 
Sur une page de connexion, j'initialise donc l'objet et l'instancie :

Code :
  1. $_SESSION["conn_telephonique"] = new connexions_telephonique();
  2. if ($_SESSION["conn_telephonique"]->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"])){
  3. $_SESSION["conn_telephonique"]->id_session = $_SESSION["conn_telephonique"]->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"]);
  4. redirect("index.php?p=membre" );
  5. }


 
Et sur une page de l'espace membre, je souhaiterai effectuer cela :

Code :
  1. $tab_customer = $_SESSION["conn_telephonique"]->get_customers();
  2. for($i=0; $i<count($tab_customer->{'customer_list'});$i++){
  3. $curr_customer = $tab_customer->{'customer_list'}[$i]->{'i_customer'};
  4. $tab_comptes = $conn_portaone->get_comptes($curr_customer);
  5. for($j=0; $j<count($tab_comptes ->{'account_list'});$j++){
  6.  echo $tab_comptes ->{'account_list'}[$j]."<br><br>";
  7. }
  8. }


 
Alors... après quelques lectures sur internet... j'ai essayé d'utiliser serialize et unserialize mais sans succès... dotn voici le code :
Page de connexion :

Code :
  1. $conn_telephonique = new connexions_telephonique();
  2. if ($conn_telephonique->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"])){
  3. $conn_telephonique->id_session = $conn_telephonique->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"]);
  4.         serialize($conn_telephonique);
  5.         redirect("index.php?p=membre" );
  6. }


 
Page de l'espace membre :

Code :
  1. unserialize($conn_telephonique);
  2. $tab_customer = $conn_telephonique->get_customers();
  3. for($i=0; $i<count($tab_customer->{'customer_list'});$i++){
  4. $curr_customer = $tab_customer->{'customer_list'}[$i]->{'i_customer'};
  5. $tab_comptes = $conn_portaone->get_comptes($curr_customer);
  6. for($j=0; $j<count($tab_comptes ->{'account_list'});$j++){
  7.  echo $tab_comptes ->{'account_list'}[$j]."<br><br>";
  8. }
  9. }


 
Et là, j'ai un message comme quoi $conn_telephonique n'est pas définie !!!
 
Si vous avez vu une erreur dans mon code, ou si vous avez une piste... n'hésitez pas ;)
 
Merci d'avance.


---------------
------------------------------
mood
Publicité
Posté le 28-09-2009 à 13:23:37  profilanswer
 

n°1927504
rufo
Pas me confondre avec Lycos!
Posté le 29-09-2009 à 10:19:39  profilanswer
 

en même temps, si :
1) tu ne serializes pas $conn_telephonique dans $_SESSION['conn_telephonique']
2) que dans l'autre script, tu fais pas appel à $_SESSION['conn_telephonique'] pour unserializer
3) tu ne stockes pas le résultat de la déserialisation dans une variable, genre $conn_telephonique
 
ça risque pas de marcher :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1927513
jordel
Elven Powaaa
Posté le 29-09-2009 à 10:48:52  profilanswer
 

Heu... j'ai pas tout saisi là ??? :D


---------------
------------------------------
n°1927576
rufo
Pas me confondre avec Lycos!
Posté le 29-09-2009 à 14:05:30  profilanswer
 

1) faut stocker le résultat de la sérialization dans une variable de session si tu veux espérer la retrouver dans une autre page ou un autre script
2) $conn_telephonique n'existe pas, faut la récupérer depuis la variable de session créée dans le précédent script
3) tu unserializes mais faudrait voir à stocker le résultat dans une variable en vue de l'utiliser après dans le script :/
 
La programmation, c'est pas magique rien ne se fait tout seul.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1927585
soju
One shot !
Posté le 29-09-2009 à 14:18:58  profilanswer
 

Pas besoin à priori d'utiliser serialize, unserialize, vu que :

Citation :

ces objets seront linéarisés automatiquement avec la fonction serialize() à la fin de chaque script, et relus avec unserialize() au début du prochain script


cf session.serialize_handler
 
Par contre pour que la récupération d'un objet stocké dans une session fonctionne bien, il faut que php connaisse la classe de l'objet avant le session_start.
Il faut donc inclure le fichier de définition de classe avant le session_start.

n°1927596
jordel
Elven Powaaa
Posté le 29-09-2009 à 14:33:00  profilanswer
 

rufo a écrit :

1) faut stocker le résultat de la sérialization dans une variable de session si tu veux espérer la retrouver dans une autre page ou un autre script
2) $conn_telephonique n'existe pas, faut la récupérer depuis la variable de session créée dans le précédent script
3) tu unserializes mais faudrait voir à stocker le résultat dans une variable en vue de l'utiliser après dans le script :/
 
La programmation, c'est pas magique rien ne se fait tout seul.


 
Hummm ouais c'est la dernière version de mon code après moult tests pour trouver un moyen de faire fonctionner serialize et unserialize...
 
Je suis passé par ce genre d'étape entre deux (sans succès) :
Page de connexion :

Code :
  1. $conn_telephonique = new connexions_telephonique();
  2. if ($conn_telephonique->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"])){
  3.    $conn_telephonique->id_session = $conn_telephonique->login_reseller($_POST["t_pseudo"],$_POST["t_motdepasse"]);
  4.  
  5.    $my_conn = serialize($conn_telephonique);
  6.    redirect("index.php?p=membre" );
  7. }


 
Page de l'espace membre :

Code :
  1. $conn_telephonique = unserialize($my_conn);
  2. $tab_customer = $conn_telephonique->get_customers();
  3. for($i=0; $i<count($tab_customer->{'customer_list'});$i++){
  4.    $curr_customer = $tab_customer->{'customer_list'}[$i]->{'i_customer'};
  5.    $tab_comptes = $conn_portaone->get_comptes($curr_customer);
  6.    for($j=0; $j<count($tab_comptes ->{'account_list'});$j++){
  7.       echo $tab_comptes ->{'account_list'}[$j]."<br><br>";
  8.    }
  9. }


---------------
------------------------------
n°1927608
jordel
Elven Powaaa
Posté le 29-09-2009 à 14:37:02  profilanswer
 

soju a écrit :

Pas besoin à priori d'utiliser serialize, unserialize, vu que :

Citation :

ces objets seront linéarisés automatiquement avec la fonction serialize() à la fin de chaque script, et relus avec unserialize() au début du prochain script


cf session.serialize_handler
 
Par contre pour que la récupération d'un objet stocké dans une session fonctionne bien, il faut que php connaisse la classe de l'objet avant le session_start.
Il faut donc inclure le fichier de définition de classe avant le session_start.


 
Alors... voici comment se construit mon script...
 - Fichier index.php qui inclue un fichier config.php
 - config.php inclue mes fichiers de classes BDD + connexions_telephonique + fonctions_standards
 - session_start() se trouve dans un fichier login.php juste avant d'instancier l'objet $conn_telephonique = new connexions_telephonique();
 
Cela parait correct, non ?


---------------
------------------------------
n°1929228
jordel
Elven Powaaa
Posté le 06-10-2009 à 09:50:24  profilanswer
 

Hello les gens...
 
Juste pour vous dire que je galère toujours autant avec ce souci de SOAP...  
 
Si z'avez une idée miraculeuse, je suis preneur :)


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de session avec un objet Soap

 

Sujets relatifs
Probleme d'update mysqlxml problème affichage dans Firefox
Problème avec splitProbleme debutant sql
Probleme pour placer des éléments swingProblème video sous IE
[JS] Problème: ""null":Cannot convert undefined or null to object"Problème accès fichier ....
Problème avec onSoundCompleteProblème WPF / Entity Framework / Data Binding
Plus de sujets relatifs à : Problème de session avec un objet Soap


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR