Estimados!
Tengo un problema de lo más raro. Es en un nuevo proyecto con login sin autorización, que tiene varias operaciones públicas.
El error que sucede es que al hacer clic en los botones del menú horizontal para ir a una operación pública, siembre termina por cargar la misma operación; es decir, no cambia de página.
En este log puede observarse que aunque la operación solicitada cambia, siembre carga la operación “Cómo funciona”
[size=8pt]-o-o-o-o-o-
Fecha: 16-03-2013 20:11:53
Operacion: Cómo funciona
Usuario: no_autentificado
Version-PHP: 5.3.8
Servidor: localhost
URI: /inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||3466
Referrer: http://localhost/inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||2
Host: ::1
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][toba] Se cambia el ítem solicitado a =>array (
0 => ‘inscribime’,
1 => ‘2’,
)
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][inscribime] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[DEBUG][toba] [SECCION] Iniciando componentes…
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio…
[DEBUG][toba] [SECCION] Respondiendo al servicio__generar_html…
-o-o-o-o-o-
Fecha: 16-03-2013 20:11:53
Operacion: Cómo funciona
Usuario: no_autentificado
Version-PHP: 5.3.8
Servidor: localhost
URI: /inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||3468
Referrer: http://localhost/inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||3466
Host: ::1
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][toba] Se cambia el ítem solicitado a =>array (
0 => ‘inscribime’,
1 => ‘2’,
)
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][inscribime] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[DEBUG][toba] [SECCION] Iniciando componentes…
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio…
[DEBUG][toba] [SECCION] Respondiendo al servicio__generar_html…
-o-o-o-o-o-
Fecha: 16-03-2013 20:11:54
Operacion: Cómo funciona
Usuario: no_autentificado
Version-PHP: 5.3.8
Servidor: localhost
URI: /inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||3464
Referrer: http://localhost/inscribime/1.0/aplicacion.php?tm=1&ai=inscribime||3468
Host: ::1
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][toba] Se cambia el ítem solicitado a =>array (
0 => ‘inscribime’,
1 => ‘2’,
)
[INFO][toba] Se detecto acceso desde el menu. Se limpia la memoria de la operacion
[DEBUG][inscribime] PUNTO DE MONTAJE: se cargó exitosamente el autoload del punto de montaje proyecto
[DEBUG][toba] [SECCION] Iniciando componentes…
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio…
[DEBUG][toba] [SECCION] Respondiendo al servicio__generar_html…[/size]
Espero puedan darme un indicio del problema, gracias!!!
IMPORTANTE:
Para solucionarlo (con alambre, jaja), la idea fue cargar bien la operación en el arreglo item, ya que al parecer no la carga bien cuando son públicas.
-
Modifiqué la función cargar_solicitud_web del archivo toba_nucleo.php.
function cargar_solicitud_web() { ... if(!$item[0] || !$item[1]) { throw new toba_error_def('ERROR: No esta definido el ITEM de LOGIN'); } //AGREGADO if (!empty($_REQUEST['ai'])){ $pos = strpos($_REQUEST['ai'], '||')+2; $item[1] = substr($_REQUEST['ai'],$pos); } //FIN AGREGADO $this->iniciar_contexto_solicitud($item); $solicitud = toba_constructor::get_runtime(array('proyecto'=>$item[0],'componente'=>$item[1]), 'toba_item'); ... }
-
Modifiqué la función comprobar_acceso_anonimo del archivo toba_manejador_sesiones.php.
private function comprobar_acceso_anonimo() { // Si el proyecto no requiere autentificacion disparo una sesion anonima if ( ! toba::proyecto()->get_parametro('requiere_validacion') ) { //Si la sesion esta extendida, aunque sea anonima necesita inicializacion. if ( $this->sesion_posse_item_inicializacion() ) { //Apunto al nucleo al item de inicializacion de sesion $item[0] = toba::proyecto()->get_id(); $item[1] = toba::proyecto()->get_parametro('item_set_sesion'); //AGREGADO if (!empty($_REQUEST['ai'])){ $pos = strpos($_REQUEST['ai'], '||')+2; $item[1] = substr($_REQUEST['ai'],$pos); } //FIN AGREGADO toba::memoria()->set_item_solicitado($item); } else { $this->login_anonimo(); } } }