Hola a todos,
os comento:
tengo un formulario (creado dinámicamente), que dependiendo de la opción llama a una acción u otra. Para que conserve los datos, utilizo sesiones. Hasta aquí todo bién.
Tengo objetos llamados "Tutoria" y vectores de objetos "TutoriasRes".
Cuando inserto una tutoria por primera vez hago esto:
Código PHP:
$tutoriasRes[0]=$tutoria;
$tutoriasRes[1]=$tutoria;
$_SESSION['tutorias2']=$tutoriasRes;
echo"ENtro por primera vez 1: ".$_SESSION['tutorias2'][0]->getDia()."</br>";
echo"ENtro por primera vez 2: ".$_SESSION['tutorias2'][1]->getDia()."</br>";
echo "nº de elementos de la sesión: ".count($_SESSION['tutorias2'])."</br>";
echo "nº de elementos del vector: ".count($tutoriasRes)."</br>";
donde $tutoriasRes, ya esta inicializado previamente y $_SESSION['tutorias2'] es la primera vez que se crea. Esto me funciona.
Pero cuando quiero añadir otra, hago esto:
Código PHP:
if (isset($_SESSION['tutorias2']))
{echo "Entro en el segundo cambio</br>";
echo"Nº de elementos de Tutorias2: ".count($_SESSION['tutorias2'])."</br>";
echo "Muestro lo que tiene: ".$_SESSION['tutorias2'][0]->getDia()."</br>";
echo "Meto lo de la sesión</br>";
$tutoriasRes=$_SESSION['tutorias2'];
echo"Tengo un cambio, C1: ".$tutoriasRes[0]->getDia()."</br>";
//Añadir el cambio
$tutoriasRes[count($tutoriasRes)]=$tutoria;
$_SESSION['tutorias2']=$tutoriasRes;
echo"Tengo un cambio, C2: ".$tutoriasRes[1]->getDia()."</br>";
}
A partir de esto:
Código PHP:
echo "Muestro lo que tiene: ".$_SESSION['tutorias2'][0]->getDia()."</br>";
me da error. Pero me muestra que efectivamente tiene 2 elementos(que he metido adrede, para ver si lo hacía).
Nota: Los comandos echo, estan puestos porque estoy haciendo la traza del error.
El Error es el siguiente:
Código PHP:
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 "Tutoria" 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:xampphtdocsServicioTutoriasActualizarTutoriasinsertar2.php on line 107
No sé si es que los vectores hay que pasarlos de alguna forma especial a las sesiones, o qué es lo que pasa.