Foros del Web » Programando para Internet » PHP »

Forzar Header Location

Estas en el tema de Forzar Header Location en el foro de PHP en Foros del Web. Buen dia y gracias por detenerse a leer este tema... Existe alguna forma de forzar el header("Location: pagina.php") si existe algo que ya este imprimiendo ...
  #1 (permalink)  
Antiguo 16/03/2011, 15:10
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Forzar Header Location

Buen dia y gracias por detenerse a leer este tema...

Existe alguna forma de forzar el header("Location: pagina.php") si existe algo que ya este imprimiendo antes ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 16/03/2011, 15:12
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Forzar Header Location

Saludos

Podrías realizar el location con javascript y no tendrías problemas.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 16/03/2011, 15:18
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Forzar Header Location

No es posible realizarlo con PHP ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 16/03/2011, 15:22
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Forzar Header Location

Saludos

No es posible!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 16/03/2011, 15:31
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Forzar Header Location

Muchas gracias por la información.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 16/03/2011, 17:17
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Forzar Header Location

Hay una manera,

No es muy recomendable, por lo que he oído, pero funciona.

Lo iba a implementar y al final cambié de estrategia. Nose si sabes que tal vez no te redirecciona porque ya impreso algo (aunque sea un espacio en blanco) antes de ejecutar el head(),

Esto que te comentaba se llama, no lo llegué a mirar demasiado, pero fijaté en http://php.net/manual/en/function.flush.php, alomejor te sirve alomejor no xD
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #7 (permalink)  
Antiguo 16/03/2011, 17:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Forzar Header Location

me apunto a los que dicen que no es posible, y por una sencilla razón: es una mala, muy mala practica!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 16/03/2011, 17:57
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Forzar Header Location

Mala práctica y no es posible, suena muy raro en la misma frase.. no? xD
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #9 (permalink)  
Antiguo 16/03/2011, 18:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Forzar Header Location

Bam_Margera, creo que no captaste bien el punto que se esta tratando:

Mala practica: No tener control sobre el momento en que debes iniciar la salida HTML y/o enviar encabezados.

No es posible: Enviar contenido al navegador y redirigir con header().
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 16/03/2011, 18:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Forzar Header Location

No estoy de acuerdo en que no es posible(ver ob_flush),

Estoy de acuerdo en que es mala practica
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #11 (permalink)  
Antiguo 16/03/2011, 20:10
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Forzar Header Location

Si se puede, pero definitivamente no me meteré con los buferes de salida... de todas maneras me parece excelente el aporte Bam_Margera... no conocía esa instrucción... todos los días se aprende algo.

En cuanto a mi problema opte por usar JS para redireccionar...

El problema radicaba en que estoy intentando crear una pagina completamente modular, cada una de las partes de la pagina es completamente independiente. menús, banner, contenido, publicidad... etc

En el modulo de menús si una variable no existe, muestra el formulario de inicio de sesión... entonces cuando el usuario se loguea lo redirecciono... pero resulta que no dejaba porque la parte de META TAGS tambien están en un modulo aparte los cuales no me dejan hacer recireccion, pero con java lo logre.

Si alguien quiere aportar o criticar bienvenido sea...

Muchas Gracias por su ayuda y va el Karma para Bam_Margera... (:
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 17/03/2011, 20:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Forzar Header Location

Entiendo que lo mas facil es:

1- Incluir modulos de la cabecera (header, menus, banners, etc.)
2- Incluir el modulo que debera mostrar contenido
3- Incluir modulos al final de la pagina (mas menus, pie de pagina, creditos, etc.)

Lo ideal seria:
1- Verificar sesion y permisos de usuario
2- Analizar la URL para determinar el modulo que se va a mostrar
3- Incluir el archivo del modulo correspondiente y dentro de el:
a) Comprobar si se va a procesar un formulario
b) Redireccionar si es necesario (sesion no iniciada, el formulario se proceso correctamente, el contenido buscado no existe, etc.)
c) Incluir los archivos necesarios para el encabezado
d) Mostrar el contenido de la pagina
e) Incluir los archivos necesarios para el pie de pagina

Puede parecer mucho trabajo el tener que estar repitiendo los pasos c) y e) en cada script, pero es la forma en que puedes tener siempre control sobre el momento en que se inicia la salida, ademas de que te permite manipular facilmente ciertas etiquetas que ayudan a procurar mejor posicionamiento en buscadores, como title, h1 y meta para descripcion y palabras clave.

Lo de vaciar el buffer de salida me parece una opcion ideal para tratar de mostrar informacion cuando se sabe que el proceso del script va a tardar un tiempo y, segun el manual de php, puede no funcionar en ciertos navegadores, esto incluye el envio de encabezados adicionales, por eso la afirmacion de "no es posible", aunque tal vez debi decir, es posible, pero poco probable.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 17/03/2011, 20:09
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: Forzar Header Location

Código PHP:
Ver original
  1. <?php
  2.    ob_start();
  3.    header('location: xxxx.php');
  4. ?>
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Etiquetas: header, location
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 13:59.