Foros del Web » Programando para Internet » PHP »

Error En funcion Header

Estas en el tema de Error En funcion Header en el foro de PHP en Foros del Web. hola buenas tardes, me podrian ayudar por favor, quisiera saber por que me sale este error: Warning: Cannot modify header information - headers already sent ...
  #1 (permalink)  
Antiguo 13/10/2010, 15:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Información Error En funcion Header

hola buenas tardes, me podrian ayudar por favor, quisiera saber por que me sale este error:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\planes\validar.php:8) in C:\AppServ\www\planes\validar.php on line 28

este es el codigo que utilizo cuando se pone mal la clave si me dice que no esta pero cuando pongo bien mesale el error de arriba me podrian decir por que sale por favor, gracias....

$cla=$_POST["contra"];
echo $cla;


$id = mysql_connect("localhost", "root", "isaang");

mysql_select_db("usuarios", $id);

$consulta = "SELECT * FROM claves WHERE clave='$cla'";

$datos = mysql_query($consulta, $id);

$numDatos = @mysql_num_rows($datos);

if ($numDatos <= 0) {
echo "Error: Usuario o contraseña incorrectos. Usuario no dado de alta. ¡¡¡Favor de Registrarse!!!.<br>";
} else {
$_SESSION['User'] = $_POST['usuario'];

header('Location: consulta.php'); // registro 0, campo 3, que será la página personal del usuario
}
  #2 (permalink)  
Antiguo 13/10/2010, 16:07
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error En funcion Header

prueba así...

Código PHP:
Ver original
  1. } elseif($_SESSION['User'] = $_POST['usuario']) {
  2.  
  3.  
  4. header('Location: consulta.php'); // registro 0, campo 3, que será la página personal del usuario
  5. }
  #3 (permalink)  
Antiguo 13/10/2010, 16:09
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error En funcion Header

prueba así...

Código PHP:
Ver original
  1. } elseif($_SESSION['User'] = $_POST['usuario']) {
  2.  
  3.  
  4. header('Location: consulta.php'); // registro 0, campo 3, que será la página personal del usuario
  5. }
  #4 (permalink)  
Antiguo 13/10/2010, 16:10
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Error En funcion Header

esto ya se a tratado muchas veces, el header no funciona si ya se ha enviado información al navegador, es decir, el header intenta modificar el contenido dentro del tag head y si este ya esta en la maquina del cliente es imposible que pueda hacerlo, para que este funciones es necesario que todo el código este en el servidor y para ella puedes usar las funciones ob_start() y ob_end_flush() o de lo contradio no mostrar nada en pantalla, no print, no echo y no codigo html puro.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 13/10/2010, 16:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error En funcion Header

hola disculpa soy nuevo en esto, pero entonces como se puede haer dado que lo estoy armando y pues necesito estar probandolo, y ver si si funcionan.
  #6 (permalink)  
Antiguo 13/10/2010, 16:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error En funcion Header

Disculpa pero sigue mandando el mismo error.
  #7 (permalink)  
Antiguo 13/10/2010, 16:33
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error En funcion Header

según cometa el colega substitulle los echo por print ( o revisa las funciones que posteo) y usa elseif en vez de else prueba el code que te paso modificado

Código PHP:
Ver original
  1. $cla=$_POST["contra"];
  2. print $cla;
  3.  
  4.  
  5. $id = mysql_connect("localhost", "root", "isaang");
  6.  
  7. mysql_select_db("usuarios", $id);
  8.  
  9. $consulta = "SELECT * FROM claves WHERE clave='$cla'";
  10.  
  11. $datos = mysql_query($consulta, $id);
  12.  
  13. $numDatos = @mysql_num_rows($datos);
  14.  
  15. if ($numDatos <= 0) {
  16. print( "Error: Usuario o contraseña incorrectos. Usuario no dado de alta. ¡¡¡Favor de Registrarse!!!.<br>");
  17. } elseif($_SESSION['User'] = $_POST['usuario']) {
  18.  
  19.  
  20. header('Location: consulta.php'); // registro 0, campo 3, que será la página personal del usuario
  21. }
  #8 (permalink)  
Antiguo 13/10/2010, 16:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Error En funcion Header

si quieres probar que tus valores esten correctos debes comentar la linea del header, una vez que estes seguro de que no tengas errores de variables habilitas el header para probar el redireccionamiento.

EDITADO: no se debe usar el print, echo, etc. lo que dije antes.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 13/10/2010, 16:42
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error En funcion Header

Cita:
Iniciado por eits Ver Mensaje

EDITADO: no se debe usar el print, echo, etc. lo que dije antes.
uy leí mal pues
  #10 (permalink)  
Antiguo 13/10/2010, 16:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error En funcion Header

si te refieres que para que funcione el header debe estar ya la pagina en funcionamieno en internet o que este dentro del servidor, por que no se si el servidor es el que esta en mi maquina, por que instale el appserv los archivos que estoy creado estan dentro de la carpeta www del appserv
  #11 (permalink)  
Antiguo 13/10/2010, 17:15
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Error En funcion Header

si esto es todo el código de la página intenta con esto
Código PHP:
Ver original
  1. $cla=$_POST["contra"];
  2. $id = mysql_connect("localhost", "root", "isaang");
  3. mysql_select_db("usuarios", $id);
  4. $consulta = "SELECT * FROM claves WHERE clave='$cla'";
  5. $datos = mysql_query($consulta, $id);
  6. $numDatos = @mysql_num_rows($datos);
  7. if ($numDatos <= 0) {
  8.     header('Location: consulta.php?e=1');
  9. } elseif($_SESSION['User'] = $_POST['usuario']) {
  10.     header('Location: consulta.php'); // registro 0, campo 3, que será la página personal del usuario
  11. }
y en consulta.php colocas algo como esto
Código PHP:
Ver original
  1. if(!empty($_GET['e']))
  2. echo 'Error: Usuario o contraseña incorrectos. Usuario no dado de alta. ¡¡¡Favor de Registrarse!!!';
y si quieres imprimir $cla para ver el contenido debes de comentar los header
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 13/10/2010, 17:48
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Error En funcion Header

ya lo hice y si quedo, muchisimas gracias

Etiquetas: funcion, 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 21:25.