Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   al recargar no accedo metodos (http://www.forosdelweb.com/f68/recargar-no-accedo-metodos-285494/)

elangelcaido 04/04/2005 02:51

al recargar no accedo metodos
 
Hola,

Tengo una clase llamada carnet en la cual he hecho una serie de metodos (funciones) para gestionar carnets.

Pues bien el caso es que tengo unos listados que me los hacen unos metodos. Al final de la clase, despues de la llave de cierre de la clase, tengo esto:

session_start();
if (!isset($_SESSION["ocarnet"])){
$_SESSION["ocarnet"] = new carnet();
}

Para que me cree en una variable de sesion el objeto carnet.

Pues bien, desde una php llamo a los metodos de esta clase y todo va bien, pero en el momento que refresco esta pagina los metodos ya no salen. El la variable de sesion sigue existiendo (lo he comprobado con isset) pero no puedo acceder ni a los metodos del objeto ni a sus atributos.

Alguna sugerencia?

sism82 04/04/2005 09:03

asegurate de leer y entender esto antes de continuar
http://www.php.net/manual/en/languag...ialization.php

elangelcaido 05/04/2005 00:43

Lo he leido pero no creo que lo haya entendido bien, dice algo asi como que tengo que guardar el objeto serializado en una variable, no?

Me lo puedes explicar tu un poco mejor?, te lo agradeceria.

Gracias.

Cluster 05/04/2005 06:01

Revisa este mensaje (y respuesta concreta de jpinedo):

http://www.forosdelweb.com/f68/array-objetos-como-paso-script-otro-281281/

No es necesario serializar el objeto .. pero si que debes conocer que al propagar un objeto por una sesión ... los métodos se pierden, por ende hay que llamar a tu classe (incluirla) en todos los scripts que lo necesites para hacer cosas tipo

Código PHP:

<?
include("tu_objeto.php");
session_start();
if (isset(
$_SESSION['objeto'])){
   
$objeto=$_SESSION['objeto'];
} else {
   
$objeto=new objeto();
}

// usas los métodos de tu objeto como de constumbre.
$objeto->metodo();
?>

Un saludo,

jpinedo 07/04/2005 13:27

Claro, el asunto, es incluir la definición de la clase antes de hacer el session_start().
Saludos:adios:

Cluster 07/04/2005 13:41

Cita:

Iniciado por jpinedo
Claro, el asunto, es incluir la definición de la clase antes de hacer el session_start().
Saludos:adios:

Ops! .. tienes razón . .se me pasó el session_start() .. voy a corregir mi mensaje anterior por si acaso.

Un saludo,

elangelcaido 11/04/2005 12:28

Efectivamente, el problema era el orden en que ponia las cosas: yo ponia antes el session_start() que los includes... :pensando: detalle importante, no sabia que esto podia darme un error de ese tipo.
Pues solucionado !!! :aplauso:

Una vez mas garcias a todos por la ayuda incondicional !!! :adios:


La zona horaria es GMT -6. Ahora son las 06:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.