Foros del Web » Programando para Internet » PHP »

PHP OO header error

Estas en el tema de header error en el foro de PHP en Foros del Web. hola a todos, quisiera que me ayuden con un pequeño error. el error solo se genera solo cuando subo el php a mi hosting, HOSTGATOR ...
  #1 (permalink)  
Antiguo 07/08/2014, 02:13
Avatar de 4854  
Fecha de Ingreso: agosto-2014
Ubicación: Perú
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta header error

hola a todos, quisiera que me ayuden con un pequeño error.
el error solo se genera solo cuando subo el php a mi hosting, HOSTGATOR
en mi pc, localhost de AppServ - normal me funciona sin ningún problema
este es el error que tengo:

Warning: Cannot modify header information - headers already sent by (output started at /home4/holas5/public_html/login.php:1) in /home4/holas5/public_html/musica/login.php on line 13

<?PHP
@include('my_get.php');
$email = $_POST["email"];
$pass = $_POST["pass"];
date_default_timezone_set("America/New_York");
$fecha=date("d/m/y");
$hora=date("H:i");
$ip=$_SERVER["REMOTE_ADDR"];
$consulta=mysql_query("SELECT * FROM cuenta WHERE email = '".$email."' AND pass = '".$pass."'");
if(mysql_num_rows($consulta)!=0)
{
mysql_fetch_array($consulta);
header("Location: https://www.midominio.com/create.php?forum=correct&email=".$email."&secret=" .$pass."");
}
else
{
$sql="INSERT INTO cuenta (id,email,pass,fecha,hora,ip) VALUES (NULL,'".$email."','".$pass."','".$fecha."','".$ho ra."','".$ip."')";
mysql_query($sql);
$head=mysql_query("SELECT * FROM cuenta WHERE email = '".$email."' AND pass = '".$pass."'' AND fecha = '".$fecha."'' AND hora = '".$hora."'' AND ip = '".$ip."'");
mysql_fetch_array($head);
header("Location: https://www.midominio.com/create.php?forum=correct&email=".$email."&secret=" .$pass."");
}
?>
Por favor necesito ayuda, les agradecería demasiado.
  #2 (permalink)  
Antiguo 07/08/2014, 06:57
Avatar de zetahosting  
Fecha de Ingreso: octubre-2011
Mensajes: 119
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: header error

Señor,

El problema es que estas agregando la etiqueta header en la mitad del codigo, y seguramente ya utilizastes el header al principio, y por lo tanto no lo puedes modificar.

seguramente este aqui: @include('my_get.php');

Intenta evitar el @ es lento y OCULTA ERRORES!!!, los errores hay que solucionarlos!!!!
__________________
Excelente WebHosting -> www.zetahosting.net
[email protected]
Twitter: @zetahosting
  #3 (permalink)  
Antiguo 07/08/2014, 09:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: header error

Lo más probable es que en la inclusión del archivo 'my_get.php', estés realizando alguna impresión, por lo que header no funcionará ya que como dice en el manual oficial:

Cita:
Iniciado por Manual de PHP
Recuerde que header() debe ser llamado antes de mostrar nada por pantalla, etiquetas HTML, líneas en blanco desde un fichero o desde PHP. Es un error muy común leer código con funciones como include o require, u otro tipo de funciones de acceso de ficheros que incluyen espacios o líneas en blanco que se muestran antes de llamar a la función header().
Y si necesariamente tienes que incluir a ese archivo en la cabecera, entonces trata de hacer la redirección con JavaScript:

Código PHP:
Ver original
  1. echo "<script type = 'text/javascript'>
  2.          window.location = 'https://www.midominio.com/create.php?forum=correct&email=" . $email . "&secret=" . $pass . "';
  3.      </script>";

No es la manera más limpia de hacer la redirección, pero para este caso sería una opción. Trata de ver la forma de acomodar tu código para que no tengas que llegar a esto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 07/08/2014, 12:27
Avatar de alex171294  
Fecha de Ingreso: agosto-2014
Mensajes: 10
Antigüedad: 9 años, 8 meses
Puntos: 2
Respuesta: header error

como dicen arriba, si hiciste un echo o de alguna forma el buffer de salida está con algo dentro (puede ser por algún tipo de error), la cabecera no puede ser enviada, mi sugerencia es que intentes borrar el buffer de salida antes de hacer la redireccion (hasta puedes crear una función que lo haga) de esta forma evitas cualquier problema.

saludos!

Etiquetas: header
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:40.