Foros del Web » Programando para Internet » PHP »

Problema con header. Pagina no redirige.

Estas en el tema de Problema con header. Pagina no redirige. en el foro de PHP en Foros del Web. Hola. A ver si alguien me puede ayudar... Estoy teniendo un problema con el redireccionamiento, donde utilizo header. El código trata de ver si existe ...
  #1 (permalink)  
Antiguo 19/09/2008, 02:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 17
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema con header. Pagina no redirige.

Hola.

A ver si alguien me puede ayudar...

Estoy teniendo un problema con el redireccionamiento, donde utilizo header. El código trata de ver si existe un archivo mediante una variable en la url y si no existe redirigirlo a una url adecuada. Ejemplo:

la url seria: http://www.undominio.com/aplic/index.php

miro si existe la variable:

Código PHP:
$lang $_GET['lang'];
if (
$lang == ''$lang 'es';
if (!
file_exists($path.'/lang/contenido-'.$lang.'.php')){ 
            
$lang 'es';
            
header("Location: http://www.undominio.com/aplic/index.php?lang=es");
            exit;
            } 
Pues bien, FF me da la advertencia:
Cita:
La página no está redirigiendo adecuadamente
Firefox ha detectado que el servidor está redirigiendo la solicitud a esta dirección de una manera en la que nunca terminará.
Este problema a veces está causado por desactivar o rechazar la recepción de cookies.
Las cookies las tengo activadas.
  #2 (permalink)  
Antiguo 19/09/2008, 03:14
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Respuesta: Problema con header. Pagina no redirige.

Hola Alcor17

El problema es que tal y como has realizado el planteamiento, la página se refrescará constantemente.

De hecho, no es necesario que efectues el refresco de la página para mostrar un idioma u otro. Simplemente has de recoger el valor de la variable de idioma y en caso de que contenga o no un valor, cargar el fichero de idioma correspondiente sin necesidad de realizar ningún refresco o recarga.

Lo que no termino de comprender es lo que contienen los archivos de contenido....
Cita:
$lang = $_GET['lang'];
if ($lang == '') $lang = 'es';
if (!file_exists($path.'/lang/contenido-'.$lang.'.php')){
$lang = 'es';
header("Location: http://www.undominio.com/aplic/index.php?lang=es");
exit;
}
Son páginas independientes con el texto en los idiomas correspondientes o bien empleas variables? Si es este último caso, tan solo deberías realizar un "include("ficheroidioma") y listos.

Saludos
__________________
Consultor SEO / WPO
[EXP] Fuego de Vida ->sitio web
  #3 (permalink)  
Antiguo 19/09/2008, 03:58
 
Fecha de Ingreso: octubre-2007
Mensajes: 17
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con header. Pagina no redirige.

Gracias por tu respuesta, popobcn.

Sí, si quito las lineas:

Código PHP:
if (!file_exists($path.'/lang/contenido-'.$lang.'.php')){ 
            
$lang 'es';
            
header("Location: http://www.undominio.com/aplic/index.php?lang=es");
            exit; 
Funciona bien. Lo he cambiado por:

Código PHP:
$lang $_GET['lang'];

if (
$lang == '' || !file_exists($path.'/lang/contenido-'.$lang.'.php')) $lang 'es'
Un par de líneas más abajo tengo:

Código PHP:
require_once ( 'lang/contenido-'.$lang.'.php'); 
que es un archivo cuyas variables contienen cada una un texto en el idioma correspondiente. Me dices que use include, pero yo utilicé require_once, la verdad es que no sé verle la diferencia.
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 12:30.