Foros del Web » Programando para Internet » PHP »

Header y redireccion

Estas en el tema de Header y redireccion en el foro de PHP en Foros del Web. Tengo esta linea en mi pagina: Código PHP: header ( "Location: listar.php?item=$modificartabla&tipo=t" );  Corriendo en mi maquina con apache funciona perfecto, llegada esa linea, me redirecciona ...
  #1 (permalink)  
Antiguo 03/04/2004, 09:40
 
Fecha de Ingreso: junio-2002
Mensajes: 126
Antigüedad: 15 años, 5 meses
Puntos: 0
Header y redireccion

Tengo esta linea en mi pagina:

Código PHP:
header("Location: listar.php?item=$modificartabla&tipo=t"); 
Corriendo en mi maquina con apache funciona perfecto, llegada esa linea, me redirecciona a la pagina especificada.

En tripod no. Alguien sabe cual es el problema?
  #2 (permalink)  
Antiguo 03/04/2004, 11:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Coloca al comienzo de tu script:
Código PHP:
error_reporting(E_ALL); 
para que te muestre todos los mensajes de error. Puede ser que estes generando salida al navegador antes del header() (¿la publicidad?).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/04/2004, 16:36
 
Fecha de Ingreso: junio-2002
Mensajes: 126
Antigüedad: 15 años, 5 meses
Puntos: 0
Me tira esto:
Notice: Undefined variable: db_userName in /data/members/free/tripod/es/m/a/t/matog/htdocs/db.inc on line 5

Notice: Undefined index: id in /data/members/free/tripod/es/m/a/t/matog/htdocs/add.php on line 11

Notice: Undefined index: identificador in /data/members/free/tripod/es/m/a/t/matog/htdocs/add.php on line 12
apellido
nombre

Notice: Undefined variable: sql1 in /data/members/free/tripod/es/m/a/t/matog/htdocs/add.php on line 60

Notice: Undefined variable: sql2 in /data/members/free/tripod/es/m/a/t/matog/htdocs/add.php on line 61

Warning: Cannot modify header information - headers already sent by (output started at /data/members/free/tripod/es/m/a/t/matog/htdocs/db.inc:5) in /data/members/free/tripod/es/m/a/t/matog/htdocs/add.php on line 70

supongo que el problema es la ultima linea...porque me guarda los datos que yo quiero en la DB por lo que el script funciona perfecto, salvo la redireccion
  #4 (permalink)  
Antiguo 23/04/2004, 01:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 114
Antigüedad: 14 años, 1 mes
Puntos: 0
yo lo he resuelto con esto, teniendo en cuenta varias reglas en eso de los headers

si html encima ni echos y sin espacios en blanco ni lineas despues de los cierres o el cierre ?>

para evitar todo lo anterior tambien puedes usar
antes de tu codigo

ob_start()


y despues de tu codigo

ob_end_flush()

Adios,
DJ-Dom
__________________
Soporte y Creaciones PHP-Nuke:
NukeProjects.Net

if($Necesitas=="Ayuda"){
echo "No dudes en pedirla";
}
  #5 (permalink)  
Antiguo 23/04/2004, 05:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
El ob_start() en este caso seria tapar un error de logica.

¿Que es?:

apellido
nombre

¿Estabas mandando salida al navegador (echos, HTML, ...) antes del header? ¿Para que, si no se van a ver? Antes del header() no puedes enviar salida al navegador, ni echos, ni HTML, ni nada. Solo cabeceras (otros headers, session_start(), setcookie()).

Con el ob_start() tapas ese fallo, porque almacena la salida al navegador hasta la finalizacion del script. Al no enviarla antes del header() no falla.

Los notices son debidos a que intentas acceder a variables e indices que no existen. En esos casos PHP devuelve como valor NULL, y por eso puede proseguir con la ejecucion del script. Algunos consideran que los notices no son errores. Yo creo que todo script deberia ejecutarse sin mostrar ningun notice, porque indican un posible fallo. Por ejemplo, tu script ejecutado en un entorno que muestre notices "fallara".

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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:54.