[résolu]transemettre un objet par session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [résolu]transemettre un objet par session

Re: transemettre un objet par session

par laurents » 04 déc. 2011, 00:27

Si tu enlèves le session_start() comment veux-tu accéder à $_SESSION...
Je l'avais fait par habitude avec les include (si fait ds l'un des fichiers, il ne faut pas recommencer...), mais j'avais pas réalisé que pour un lien, c'est pas du tout pareil...

Sinon, mtn, c'est nickel : merci bcp =D>

Re: transemettre un objet par session

par xTG » 03 déc. 2011, 11:05

Si tu enlèves le session_start() comment veux-tu accéder à $_SESSION...
Et ton problème provient du fait que la class doit être inclue avant le session_start().

Re: transmettre un objet par session

par laurents » 02 déc. 2011, 23:09

J'ai inclus ce fichier sur la page :
//session_start();
   $include = "PHPExcel/Classes/PHPExcel/IOFactory.php";

   if (is_file($include))   include_once ($include);
   else                     echo "Fichier <b>".$include."</b> inaccessible <br>\n";
if (isset($_SESSION['obj_xls'])) {$objPHPExcel=unserialize($_SESSION['obj_xls']);else echo "objet existe pas<br>";
  foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
(et commenté session_start() car c'était déjà fait avant), mais il me reste une fatal error :
Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "PHPExcel" 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 /homez.309/villardd/www/xls/analyse_xls_archive.php on line 4
:cry: et la ligne 4 mentionnée est vide :?:

Re: transemettre un objet par session

par xTG » 02 déc. 2011, 22:42

Sur la page où tu deserialize il faut que tu ais inclus le fichier contenant la class.

[résolu]transemettre un objet par session

par laurents » 02 déc. 2011, 21:05

Bonsoir,

j'ai un problème de transmission d'objet par session que je n'ai pu résoudre par une recherche. Donc je l'expose ici : je lis un fichier Excel avec phpExcel ; ça me retourne un objet que je souhaite transmettre à la page qui va l'exploiter, et c'est là que ça coince.

Mon code :
test_xls_archive.php :
 <?php 

include ('upload.html' );
include ('lire_xls.php' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title></title>
</head>
<body>

<a href="analyse_xls_archive.php">afficher</a>
</body>
</html> 
lire_xls.php :
  <?php  
   session_start();

   if (isset($_SESSION['nom_fichier'])) {$File_name=$_SESSION['nom_fichier'];

   $include = "PHPExcel/Classes/PHPExcel/IOFactory.php";

   if (is_file($include))   include_once ($include);
   else                     echo "Fichier <b>".$include."</b> inaccessible <br>\n";

   $objPHPExcel = PHPExcel_IOFactory::load($File_name);
   $_SESSION['obj_xls']=serialize($objPHPExcel);
   }
?>
et analyse_xls_archive.php :
  <?php 
session_start();
if (isset($_SESSION['obj_xls'])) {$objPHPExcel=unserialize($_SESSION['obj_xls']);
  foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
...
et l'erreur :
Notice: Undefined variable: objPHPExcel in /homez.309/villardd/www/xls/analyse_xls_archive.php on line 4

Fatal error: Call to a member function getWorksheetIterator() on a non-object in /homez.309/villardd/www/xls/analyse_xls_archive.php on line 4
comment corriger ça ?