Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2006, 00:21
zsamer
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
problemas con SESSION y unserialize (Call to a member function on a non-object in)

Hola tengo un problemas con $_SESSION[$objectName], funciona bien la 1º vez que se carga la página en el navegador , pero despues al actualizar o cambiar de pagina da un error:

Código PHP:
Fatal errorCall to a member function on a non-object in C:xampphtdocszsamermoduloscatalogoincludesautoload_func.php on line 106 
me parece que debe ser problema de serialize o unserialize, pero no he podido resolverlo.

aqui esta el código
Código PHP:

     
case 'classInstantiate':
      
$objectName $entry['objectName'];
      
$className $entry['className'];
      if (isset(
$entry['classSession']) && $entry['classSession'] === true) {
        if (isset(
$entry['checkInstantiated']) && $entry['checkInstantiated'] === true) {
          if (!isset(
$_SESSION[$objectName])) {
            
$_SESSION[$objectName] = new $className();
            
$debugOutput .= 'if (!$_SESSION[' $objectName ']) { ';
            
$debugOutput .= '$_SESSION[' $objectName '] = new ' $className '();';
            
$debugOutput .= ' }<br />';
          }
        } else {
          
$_SESSION[$objectName] = new $className();
          
$debugOutput .= '  $_SESSION[' $objectName '] = new ' $className '();</br>';
        }
      } else {
        $
$objectName = new $className();
        
$debugOutput .= '$' $objectName ' = new ' $className '();</br>';
      }
      break;
      case 
'objectMethod':
      
$objectName $entry['objectName'];
      
$methodName $entry['methodName'];
      if (
is_object($_SESSION[$objectName])) {
            
        
$_SESSION[$objectName]->$methodName();
        
$debugOutput .= '$_SESSION[' $objectName ']->' .  $methodName '();</br>';
      } else {

        
$objectName=$_SESSION[$objectName];
        $
$objectName->$methodName();
        
$debugOutput .= '$' $objectName '->' $methodName '();</br>'// ESTA ES LA LINEA 106
      
}
      break; 
Aquí está la linea 106 donde da el problema

Código PHP:
     if (is_object($_SESSION[$objectName])) {
            
        
$_SESSION[$objectName]->$methodName();
        
$debugOutput .= '$_SESSION[' $objectName ']->' .  $methodName '();</br>';
      } else {

$objectName=$_SESSION[$objectName];
$
$objectName->$methodName();
$debugOutput .= '$' $objectName '->' $methodName '();</br>'//ESTA ES LA LINEA 106
      

alguna idea.

gracias

Última edición por zsamer; 12/05/2006 a las 01:18