Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Mas Problemas Con Sesiones

Estas en el tema de Mas Problemas Con Sesiones en el foro de Frameworks y PHP orientado a objetos en Foros del Web. HOLA, ALGUIEN PODRIA AYUDAR CON UNA CLASE PARA CREAR UN OBJETO DE SESSION? LES COMENTO, EN EL TRABAJO HE ESTADO HACIENDO UN FORMULARIO DE REGISTRO, ...
  #1 (permalink)  
Antiguo 03/03/2006, 10:04
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Mas Problemas Con Sesiones

HOLA, ALGUIEN PODRIA AYUDAR CON UNA CLASE PARA CREAR UN OBJETO DE SESSION?
LES COMENTO, EN EL TRABAJO HE ESTADO HACIENDO UN FORMULARIO DE REGISTRO, TODO ADENTRO DE UNA SOLA CLASE PARA INVOCAR DE LA SIGUIENTE FORMA:

$registro=new user();
$registro->form();//Muestra formulario
$registro->procesa();//Procesa dicho formulario
$registro->form_update();//formulario para actualizar datos
$registro->procesa_form_update();//Procesa los datos del formulario de actualizacion
.....
.....
y así

Ahora por ejemplo, en el constructor de la clase user, yo ponia lo siguiente

session_name('registro');
session_start();


Entonces, en el método procesa, si algun dato estaba mal, almacenaba esos datos en la sesion, por ejemplo si estaba incompleto el campo email de caracter obligatorio hacia lo siguiente:

$_SESSION['email']=$_POST['email'];

Bueno hasta aquí todo bien.

El problema surgio en la parte del formulario de registro que es form();
En ese metodo donde estaba el formulario, los valores de los campos estaban con las sessiones, es decir <input type....value='$_SESSION['email']'> entonces lo que el usuario escribia estaba de nuevo en el form.

Pero el problema radicaba en lo siguiente, como adentro del método form() yo llamaba al metodo procesa() no se porqué, pero como que la session no se actualizaba, probe elimnar el método procesa y poner el codigo directamente dentgro de form(), pero me pasaba los mismo, se los explico con 1 ejemplo.

El usuario en el campo email coloca lo siguiente mimail@hotmail
Es un email inválido, entonces saltaba el error y le decia que el email estaba invalido.
Ahora el usuario tipeaba esto mimail@hotmail.
Que tambien es un email inválido, pero en el form, cuando saltaba el error en vez de aparecer mimail@hotmail. en el value del campo del email aparecia mimail@hotmail osea el primer email inválido que habia colocado, probe las cache y toda la historia y siempre pasaba lo mismo, cuando cometias el sisguiente error, se actualizaba el formulario con el error anterior al actual y asi sucesivamente, en pocas palabras, habia 1 retardo en las sessiones, y no se porque, lamentablemente lo tuve que implementar con COOKIES, pero no soy muy amigo de estas, y ahora tengo que hacer el modulo del logeo de usuarios y me gustaria hacerlo pero con SESSIONES, si alguien me pudises tirar ideas, o algun modulo hecho en el cual basarme, se lo agradeceria mucho.

Saludos.-
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #2 (permalink)  
Antiguo 03/03/2006, 10:17
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Yo recién estoy empezando con poo (todo un cliché en este foro), pero por lo que leí por allí el problema puede deberse a las referencias:
http://es.php.net/manual/es/language.oop.newref.php
http://www.zonaphp.com/%c2%bfque-esperar-de-php5/2/
Pero no estoy seguro. Ya nos dirá alguien si es por eso o no.
  #3 (permalink)  
Antiguo 04/03/2006, 23:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 2
Citando el manual de PHP:
Cita:
El soporte de las sesiones le permite registrar un número arbitrario de variables que se conservarán en las siguientes peticiones. Cuando un visitante acceda a su web, PHP comprobará automáticamente (si session.auto_start está puesto a 1) o cuando usted lo especifique (de forma explícita mendiante session_start() o implícita a través de session_register()) si se le ha enviado un "session id" específico con su petición, en cuyo caso se recrean las variables que se habían guardado anteriormente.

Todas las variables registradas son almacenadas tras finalizar la petición. Las variables que están indefinidas se marcan como no definidas. En los subsiguientes accesos, no estarán definidas por el módulo de sesiones a menos que el usuario las defina más tarde.
Esto quiere decir que la primera peticion donde aparece un session_start() sirve para definir y almacenar tus varibles de sesion, para su posterior recuperacion en la siguiente llamada a tu script y esto es por que el protocolo de HTTP no es asincrono.
__________________
Saludos!
Mty-NL..
  #4 (permalink)  
Antiguo 05/03/2006, 09:44
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Hola gracias por las respuestas, pero probe lo que posteo panino5001, y parece haberme dado resultado. Cuando este en el trabajo el lunes, les comento.
Saludos y gracias por las respuestas
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #5 (permalink)  
Antiguo 05/03/2006, 11:40
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 2
Si tu script maneja las variables que llegan por REQUEST el mismo, el problema no tiene nada que ver con el paso de objetos por referencia en el caso de php4 ya que no estas referenciando las variables de sesion.
Pero si el envio de tu forma es a otro archivo y este procesa el formulario, pordria ser habria que ver como esta implementada tu clase, pero en fin si ya encontraste solucion, ya no hay delito que perseguir.
__________________
Saludos!
Mty-NL..
  #6 (permalink)  
Antiguo 05/03/2006, 17:11
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
MM pues ahora estoy en casa, pero cuando esté mañana en el trabajo, posteo la clase que cree para manejar las sessiones, asi le hechas un vistazo, por ahi la cree al pedo, no se, jejejeje, no la probe todavia con formularios, sino que la probe asi no mas pasando parametros estaticos.
En fin mañana la posteo, asi la pruebas o la miras.
De todas formas aclaro soy muy noob en esto de la POO todavia.
Saludos.-
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




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