Foros del Web » Programando para Internet » PHP »

problemas con header

Estas en el tema de problemas con header en el foro de PHP en Foros del Web. Hola, tengo un problema con el redireccionamiento de un página: <?php $tipo = $_POST["tipo"]; //tipo es el valor de los radio button if ($tipo==empresa) { ...
  #1 (permalink)  
Antiguo 08/09/2004, 11:01
 
Fecha de Ingreso: marzo-2004
Mensajes: 50
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta problemas con header

Hola,
tengo un problema con el redireccionamiento de un página:
<?php

$tipo = $_POST["tipo"]; //tipo es el valor de los radio button

if ($tipo==empresa) {
header("Location: http://localhost/formuGeneral.htm");
}
else{
header("Location: http://localhost/formuAltaPrivado.htm");
}
?>
Este el mensaje de error:

Warning: Cannot modify header information - headers already sent by (output started at c:\appserv\www\tiporegistro.php:2) in c:\appserv\www\tiporegistro.php on line 7
  #2 (permalink)  
Antiguo 08/09/2004, 12:04
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
Amigo, verifica que antes de ese "script" no se haya enviado ninguna cabecera, o sea... que eso sea lo PRIMERO de tu archivo .php. Si has enviado algo antes, como por ejemplo código HTML o algún echo(), entonces no podrás usar el header() ahi donde lo tienes.

También puedes usar este método para no tener que modificar tu script:
http://www.forosdelweb.com/showthrea...490#post414490

Un saludo!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #3 (permalink)  
Antiguo 08/09/2004, 13:01
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
tambien podria ser que te esto:

$tipo = $_POST["tipo"]; //tipo es el valor de los radio button

if ($tipo==empresa) {

en donde haces la comparacion de $tipo, deberia ser "empresa" con comillas o no? (a no ser que empresa sea una constante...) creo que ahi podria estar el problema..

saludos
__________________
=PoWeReD By MySeLf!=
  #4 (permalink)  
Antiguo 08/09/2004, 13:58
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 15 años, 4 meses
Puntos: 2
No, el error que devuelve no se refiere a eso. Se refiere a los "headers already sent".
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #5 (permalink)  
Antiguo 08/09/2004, 14:14
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
lo que pasa es que si antes de la instruccion header, si tienes algun error, php te devolvera texto, como por ejemplo "blah blah blah parse error on line x etc" y eso equivale a un ECHO, por eso, si el script tiene un error antes del header, la instruccion mostrara "headers already sent", pero no siempre es porque explicitamente hay algo que se esta mostrando, sino que tambien puede ser provocado por un error de una instruccion anterior al header... en cualquier lado, pero antes.

tambien puedes comentar el header, y probar asi, es cosa de intentar distintas cosas, ya que los errores de header already sent son bastante comunes y nunca son tan obvios como parecen.

Ademas, otra cosa, y para fundar aun mas mi respuesta, si ese codigo que pusiste corresponde al archivo tiporegistro.php, entonces fijate que este error te devuelve la linea en donde empezo a enviarse informacion de vuelta, y esto lo puedes ver fijandote en

(output started at c:\appserv\www\tiporegistro.php:2)

alli dice que tiporegistro.php:2 quiere decir que el output empezo en la linea 2!!

y luego fijate en

c:\appserv\www\tiporegistro.php on line 7

y asumiendo que este codigo es del archivo tiporegistro.php

1: <?php
2: $tipo = $_POST["tipo"]; //tipo es el valor de los radio button
3: if ($tipo==empresa) {
4: header("Location: http://localhost/formuGeneral.htm");
5: }
6: else{
7: header("Location: http://localhost/formuAltaPrivado.htm");
8: }
9: ?>

revisa eso... entre la linea dos y la tres...

saludos
__________________
=PoWeReD By MySeLf!=

Última edición por e-miliox; 08/09/2004 a las 14:17
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 17:02.