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

Controlador con includes y headers

Estas en el tema de Controlador con includes y headers en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, tengo un problema. Resulta que tengo un controlador que carga las paginas mediantes includes (Tiene q ser include, xq el explode en mi ...
  #1 (permalink)  
Antiguo 28/04/2008, 14:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Controlador con includes y headers

Hola amigos, tengo un problema.

Resulta que tengo un controlador que carga las paginas mediantes includes (Tiene q ser include, xq el explode en mi caso no me viene bien).

el controlador llama a la clase que necesite ejecutar dependiendo de un parametro accion que le llega del request, y con esa accion, instancia objetos de las clases requeridas, y esos objetos ejecutan un metodo "ejecutar" (todas las clases q ejecuta el navegador tienen los mismos nombres de metodos, pero cada metodo ace una cosa diferente dependiendo de la clase q sea), y el metodo ejecutar devuelve true o false dependiendo de como haya ido la operacion, y si da true, da valor a la propiedad de la clase "vista", y el controlador la recoge y ace un include con esa vista. La cosa es q tengo algunas clases q en vez de devolver una vista, tienen q redireccionar de nuevo al controlador para q este ejecute otras acciones para cargar otra pagina, y este redireccionamiento lo estoy aciendo con un header dentro del objeto accion, pero me salta un error y creo q es xq no me pilla el header...

Os ago un bocetillo de mi codigo

Código PHP:
// Controlador
$act $_POST["accion"];
$accion = new Accion($act);

if (
$accion->ejecutar())
{
    
$vista $accion->getVista();
   
// Y mas codigo q no viene al caso....
}
else
{
    
$vista "error.php";
}

include(
$vista); 
Código PHP:
//Clase accion
class Accion
{
// Me salto el constructor y demas...
function ejecutar()
{
   
header("Location: controlador.php?accion=".$_GET["accion"]);

Seria algo asi, aunq evidentemente no esta exacto, xq os podeis morir para leerlo todo. Ese seria el procedimiento a seguir, y de antemano aclaro q no imprimo nada de html antes de acer ni los includes ni los header del controlador, eso lo ago en las paginas para las vistas, pero en el controlador y en sus clases, nanai ...

Alguna idea, keja o sugerencia sobre mi codigo y este puñetero problema?

Se agradece la ayuda por adelantado ;)
  #2 (permalink)  
Antiguo 28/04/2008, 15:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Controlador con includes y headers

Hola masane,

¿que error te marca? En dado caso después del header puedes usar exit para que la redirección sea al momento.

Saludos.
  #3 (permalink)  
Antiguo 28/04/2008, 15:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Controlador con includes y headers

Me dice q no encuentra el archivo del include, pero de un include del controlador q llama a la clase accion, y en una linea posterior a la ejecucion del metodo ejecutar del objeto accion. Amos, q se pasa el header por los forros y sigue con el codigo del controlador como si tal cosa, y ahi es donde esta el error, xq yo no le asigno la vista de una pagina php, sino q lo redirecciono al controlador con otra accion diferente...

Se puede incluir un header dentro de un include? :S xq no e leido por ningun sitio q no se pueda, pero esto q me ace es bastante raro
  #4 (permalink)  
Antiguo 28/04/2008, 15:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Controlador con includes y headers

Prueba agregar el exit:
Código PHP:
//Clase accion
class Accion
{
// Me salto el constructor y demas...
function ejecutar()
{
   
header("Location: controlador.php?accion=".$_GET["accion"]);
   exit();

Saludos.
  #5 (permalink)  
Antiguo 28/04/2008, 15:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Controlador con includes y headers

al final no me a exo falta el exit(), era un error q me daba xq la contraseña en md5 es de 32 digitos, y en la base de datos el tamaño del campo del password era de 20, y me saltaba un error al compararlas, pero como soy tan chochona, en vez de guardar las vistas en "$this->vista = ..." para poder recogerla luego con el getVista(), voy y pongo "$vista->..." ... Y por esto son todos mis errores, siempre es lo mismo... keda demostrado q lo mio es java y no php

Gracias de todas formas, acabo de aprender un buen truco con ese exit ;)
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 16:38.