Foros del Web » Programando para Internet » PHP »

Warning: Cannot modify header information

Estas en el tema de Warning: Cannot modify header information en el foro de PHP en Foros del Web. Hola tengo este warning y no se como solucionarlo Warning: Cannot modify header information - headers already sent by (output started at index.php:24) in contador.php ...
  #1 (permalink)  
Antiguo 27/07/2008, 05:47
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Warning: Cannot modify header information

Hola tengo este warning y no se como solucionarlo

Warning: Cannot modify header information - headers already sent by (output started at index.php:24) in contador.php on line 5

Linea 24 del index.php
<html>


Linea 5 del contador.php
setcookie ("prueba","www.prueba.com", time()+43200);


Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 27/07/2008, 05:51
 
Fecha de Ingreso: julio-2008
Ubicación: El Puerto de Santa María
Mensajes: 62
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Warning: Cannot modify header information

El error es porque el setcookie se tiene que poner antes de cualquier echo o etiqueta HTML

Saludos
  #3 (permalink)  
Antiguo 27/07/2008, 05:54
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Warning: Cannot modify header information

o un simple espacio en blanco, primero siempre el codigo php, sin espacios antes de la etiqueta "<?"

ese es el problema, revisa el script, que lo solucionaras rapidamente.
  #4 (permalink)  
Antiguo 27/07/2008, 06:07
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Warning: Cannot modify header information

El caso es que el index.php llama a una función pie() que esta en piedep.php y esta llama a la funcion() mostrar que esta en contador.php.

Tengo la página organizada por funciones.

El script contador es este:
Código:
<?php
function mostrar(){
if (!isset($_COOKIE['prueba']))
{
  setcookie ("prueba","www.prueba.com", time()+43200); 
  $destino = "contador/cuent.dat";
  $abrir = fopen($destino,"r");
  $cuenta = trim(fread($abrir,filesize($destino)));
  

  if ($cuenta != "") $cuenta++;
  else $cuenta = 1;
  @fclose($abrir);
  $abrir = fopen($destino,"w");
  @fputs($abrir,$cuenta);

  for($i=0;$i<strlen($cuenta);$i++) 
  {
    $imagen = substr($cuenta,$i,1);
    $contador .= "<img alt='$imagen ' src='contador/$imagen.gif'>";
  }
  @fclose($abrir);
  print $contador;
  
}
}
?>
Un saludo
  #5 (permalink)  
Antiguo 27/07/2008, 09:49
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Warning: Cannot modify header information

Cita:
Iniciado por freestyle10 Ver Mensaje
El caso es que el index.php llama a una función pie() que esta en piedep.php y esta llama a la funcion() mostrar que esta en contador.php.

Tengo la página organizada por funciones.

El script contador es este:
Código:
<?php
function mostrar(){
if (!isset($_COOKIE['prueba']))
{
  setcookie ("prueba","www.prueba.com", time()+43200); 
  $destino = "contador/cuent.dat";
  $abrir = fopen($destino,"r");
  $cuenta = trim(fread($abrir,filesize($destino)));
  

  if ($cuenta != "") $cuenta++;
  else $cuenta = 1;
  @fclose($abrir);
  $abrir = fopen($destino,"w");
  @fputs($abrir,$cuenta);

  for($i=0;$i<strlen($cuenta);$i++) 
  {
    $imagen = substr($cuenta,$i,1);
    $contador .= "<img alt='$imagen ' src='contador/$imagen.gif'>";
  }
  @fclose($abrir);
  print $contador;
  
}
}
?>
Un saludo
pues, si en ese index.php haces un echo o similar que imprima algo por pantalla, debes quitarlo, o hacer primero el setcookie, ya que no puede haber nada enviado al cliente antes de las cookies. nose si me explico?
  #6 (permalink)  
Antiguo 27/07/2008, 15:35
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Warning: Cannot modify header information

Haciendo de esa manera no me sirve el script fijate que lo que hago es preguntar antes que nada si existe la cookie y si no existe la mando.

Al estar dentro de una función entres a la pagina que entres del árbol de directorios de la web cuenta la visita de otra manera no.

Un saludo
  #7 (permalink)  
Antiguo 27/07/2008, 15:54
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Warning: Cannot modify header information

La respuesta de DooBie es correcta, primero son las cabeceras antes que cualquier cosa, me imagino que en tu index, primero escribes algo y luego mandas a verificar las cookies.

así que lo ideal es que dentro del index antes de escribir algo, mandes a verificar primero la cookie, sino te mandará error, ya que una cabecera no puede tener nada que la anteceda.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #8 (permalink)  
Antiguo 29/07/2008, 05:32
 
Fecha de Ingreso: julio-2008
Mensajes: 15
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Warning: Cannot modify header information

Ya esta solucionado muchas gracias a todos.
  #9 (permalink)  
Antiguo 29/07/2008, 05:37
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Warning: Cannot modify header information

Cita:
Iniciado por freestyle10 Ver Mensaje
Ya esta solucionado muchas gracias a todos.
estaria bien que explicases como lo has solucionado, para posibles consultas de otros compañeros :)
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 00:56.