Regresar   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 28/04/08, 14:07:03   #1 (permalink)
Masane ha deshabilitado el Karma
 
Registrado: mar 2008
Mensajes: 18
Masane is online now  
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 ;)
  Responder Con Cita
Antiguo 28/04/08, 15:03:20   #2 (permalink)
Moderador
GatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karma
 
Registrado: may 2006
Ubicación: Queretaro, Mexico
Mensajes: 9.183
GatorV is online now  
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.
__________________
Blog Web
  Responder Con Cita
Antiguo 28/04/08, 15:07:59   #3 (permalink)
Masane ha deshabilitado el Karma
 
Registrado: mar 2008
Mensajes: 18
Masane is online now  
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
  Responder Con Cita
Antiguo 28/04/08, 15:13:48   #4 (permalink)
Moderador
GatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karmaGatorV tiene un muy buen nivel de karma
 
Registrado: may 2006
Ubicación: Queretaro, Mexico
Mensajes: 9.183
GatorV is online now  
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.
__________________
Blog Web
  Responder Con Cita
Antiguo 28/04/08, 15:33:55   #5 (permalink)
Masane ha deshabilitado el Karma
 
Registrado: mar 2008
Mensajes: 18
Masane is online now  
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 ;)
  Responder Con Cita
Respuesta


Califica este Tema - Controlador con includes y headers.

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado Califica este Tema
Califica este Tema:

Reglas del foro
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está activado
Las caritas están activado
Código [IMG] está activado
Código HTML está desactivado


Todas las horas son GMT -6. La hora es 15:56:18.

Message Board Statistics

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96