Foros del Web » Programando para Internet » PHP »

Problema con cookies

Estas en el tema de Problema con cookies en el foro de PHP en Foros del Web. Holaaaa, A ver, estoy liadíasima con esto. Mi aplicación es multiidioma. Al inicio de cada página pongo esto... Código PHP: <?php      include  "cookie_lang.php" ;     ...
  #1 (permalink)  
Antiguo 21/03/2007, 04:22
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema con cookies

Holaaaa,

A ver, estoy liadíasima con esto. Mi aplicación es multiidioma. Al inicio de cada página pongo esto...

Código PHP:
<?php
    
include "cookie_lang.php";    
    include 
"incluir_lang.php";
?>
...
HTML
...
Sin espacios ni comentarios antes ni nada, son las primeras líneas estas.

En cookie_lang.php

Código PHP:
<?php
    
if (!isset($_COOKIE['lang'])) {
        if (
$_COOKIE['lang'] == "EN") {
            
setcookie("lang""EN"time () + 604800);
        }
        else {
            
setcookie("lang""ES"time () + 604800); //LINEA 7        
        
}
    }
?>
Tal cual.

En incluir_lang.php, tengo:

Código PHP:
<?php
    
if ($_COOKIE['lang'] == "ES")
        include 
"lang/ES/lang.php";            
    else
        if (
$_COOKIE['lang'] == "EN")
            include 
"lang/EN/lang.php";
        else
            include 
"lang/ES/lang.php";
?>
Mi problema es en la 1º página, que me hace el include, pq me escribe las variables correspondientes pero me da estos errores, y yo no escribo nada antes ni nada....:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at c:\....\stats.php:10) in c:\...\cookie_lang.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at c:\...\stats.php:10) in c:\...\cookie_lang.php on line 7
  #2 (permalink)  
Antiguo 21/03/2007, 04:36
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: Problema con cookies

Para definir una cookie, tienes que establecerla antes de cualquier operacion en tu página, incluso la existencia de un espacio antes de <html> te daría un error.

Los errores que comentas se producen porque el navegador ha recibido información de cabeceras y al intentar establecer la cookie despues de esta información dispara el error.

Cuando establezco una cookie, yo uso algo como lo siguiente en mis ficheros.
Código PHP:
<?php
//Genera una cookie que permite al usuario descargar ficheros desde el site
$Nombre "Descargas";
$Valor "www.midominio.com";
$Expira mktime(0,0,0,7,20,2005);
$Domain "midominio";
setcookie($Nombre$Valor$Expira$Domain);

//Establecer la cookie de control para el registro
if($tp == "19"setcookie("registro""estado=1"time() + 3600"/""midominio.com"0);

RESTO DEL CODIGO PHP

//La variable $tp="19", es una variable de control que uso en el sitio de uno de mis clientes, y que para el ejemplo no tiene relevancia.
establecería una cookie que espira al cerrar el navegador o cambiar de página.
  #3 (permalink)  
Antiguo 21/03/2007, 05:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con cookies

Gracias rayder, pero creo que en mi código lo hago como tu me dices. ¿Qué ves de raro en mi post?
  #4 (permalink)  
Antiguo 21/03/2007, 05:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: Problema con cookies

Estoy alucinando. He reproducido tu código en mi servidor local y me funciona correctamente.

Lo único que se me ocurre es que revises tu código en busca de algun espacio en blanco
  #5 (permalink)  
Antiguo 21/03/2007, 05:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 11
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema con cookies

Hola Vane.

Puede ser que el archivo sea UTF-8, algunos editores para indicar que es UTF-8 añaden al inicio del fichero un carácter (que no lo leemos) que se llama BOM, editores como Ultra Edit permiten crear ficheros UTF-8 sin BOM.

Saludos
  #6 (permalink)  
Antiguo 21/03/2007, 06:15
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: Problema con cookies

Pues es una posibilidad con la que no he contado, en mi caso, las pruebas las he realizado con dreamweaver 8 y el código, como lo tiene puesto, me ha funcionado perfectamente.

Esto lo he sacado de la ayuda del dreamweaver
Cita:
Si selecciona Unicode (UTF-8) como codificación predeterminada, puede incluir una marca de orden de bytes (BOM) en el documento seleccionando la opción Incluir firma Unicode (BOM).

Una BOM está formada por entre 2 y 4 bytes situados al comienzo de un archivo de texto que identifican a un archivo como Unicode y, en este caso, el orden de los bytes siguientes. Dado que UTF-8 carece de orden de bytes, la adición de una BOM UTF-8 es opcional. Es obligatoria en el caso de UTF-16 y UTF-32.



Última edición por rayder; 21/03/2007 a las 06:22
  #7 (permalink)  
Antiguo 21/03/2007, 06:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con cookies

Yo uso dreamweaver 2004. Me da el error ese, pero si yo actualizo, ya no me sale... es muuuuy raro
  #8 (permalink)  
Antiguo 21/03/2007, 11:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con cookies

Y cómo hago para que no incluya la marca BOM ??
  #9 (permalink)  
Antiguo 22/03/2007, 03:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: Problema con cookies

En dreamwever 8 sería así:

Pincha en edición->preferencias

Selecciona Nuevo documento de la lista de la izquierda Categoria

En la zona de la derecha, busca un Chek que pone Incluir firma unicode (BOM) justo debajo del desplegable Formulario de normas unicode:.

Este chek tiene que estar DESMARCADO y en el desplegable "Formulario de normas unicode:", yo lo tengo configurado a "Ninguna".

Quiero pensar que en dreamwever 2004mx será igual o muy parecedio.

Con esta configuración a mi me funciona perfectamente en los navegadores Firefox 1.5.0.11, IE 6.0 y netscape 7.
  #10 (permalink)  
Antiguo 22/03/2007, 06:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con cookies

OK. En dreamweaver 2004, es igual que lo que me explicas pero ya lo tenía así y no funciona. No se ya que hacerrrrr. Y si vosotros lo habéis probado y os funciona ya no me lo explico....
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 20:33.