Foros del Web » Programando para Internet » PHP »

cookies "Cannot modify header information"

Estas en el tema de cookies "Cannot modify header information" en el foro de PHP en Foros del Web. Tengo el siguiente codigo: <?php /* SISTEMA DE SI ERES MENOR DE 18 AÑOS FUERA, NECESARIO ANTES DE NADA COMPROBAR COOKIE (parte I) */ if(isset($_GET["ponerCookie"])) ...
  #1 (permalink)  
Antiguo 23/12/2003, 18:59
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
cookies "Cannot modify header information"

Tengo el siguiente codigo:

<?php
/* SISTEMA DE SI ERES MENOR DE 18 AÑOS FUERA, NECESARIO ANTES DE NADA COMPROBAR COOKIE (parte I) */
if(isset($_GET["ponerCookie"])) setCookie("mayor18","si");
if(isset($HTTP_COOKIE_VARS["mayor18"])) {
if($HTTP_COOKIE_VARS["mayor18"]=="si") $muestraDiv=false;
else $muestraDiv=true;
}
else $muestraDiv=true;
?>

Esta al principio de todo en un documento php que va a ser llamado desde un include() de otra pagina, pero espero que ahi no este el inconveniente.

El caso es que cuando la pagina tiene ?ponerCookie=1, entonces se ejecuta setCookie("mayor18","si"), pero me da el error:

Cannot modify header information - headers already sent by (output started at ....)

Sé que esa function ha de ser llamada antes de enviar ninguna informacion al navegador, y es lo que hago, pero aun asi me sale este error. Ojala me puedan decir como solucionarlo.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #2 (permalink)  
Antiguo 23/12/2003, 19:24
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 7 meses
Puntos: 8
Es porque antes de enviar una cookie no debe haber ninguna salida al navegador.
Esto significa ningun echo, print, nada de HTML, y ningun espacio antes del tag de apertura <?php.
Justamente la parte del mensaje del erro que omitiste es la mas importante: (output started at ....). Eso que te dice ahí es donde se efectuo esa "salida" que te complica la situacion.

Saludos
  #3 (permalink)  
Antiguo 23/12/2003, 20:20
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
De acuerdo Solucionado

Gracias, ya tengo la solucion, tenia dos espacios antes de <?php, pero no esperaba que afectaran sin nisiquiera haber abierto <html>.

Hasta otra.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 08:49.