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

Respuesta
 
Herramientas Desplegado
Antiguo 28-abr-2008, 14:07   #1 (permalink)
Masane ha deshabilitado la reputación
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
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 ;)
Masane está desconectado   Responder Citando
Antiguo 28-abr-2008, 15:03   #2 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 9.492
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
GatorV está desconectado   Responder Citando
Antiguo 28-abr-2008, 15:07   #3 (permalink)
Masane ha deshabilitado la reputación
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
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
Masane está desconectado   Responder Citando
Antiguo 28-abr-2008, 15:13   #4 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 9.492
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
GatorV está desconectado   Responder Citando
Antiguo 28-abr-2008, 15:33   #5 (permalink)
Masane ha deshabilitado la reputación
 
Fecha de Ingreso: marzo-2008
Mensajes: 20
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 ;)
Masane está desconectado   Responder Citando
Respuesta
Califica este Tema - Controlador con includes y headers.


Herramientas
Desplegado Califica este Tema
Califica este Tema:

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


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


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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