setcookie

setcookie -- Envía una cookie

Descripción

int setcookie ( string name, string value, int expire, string path, string domain, int secure)

setcookie( ) define una cookie para ser enviada con el resto de la información de la cabecera . Las cookies deben enviarse antes de mandar cualquier otra cabecera ( esta es una restricción de las cookies , no de PHP ) . Esto requiere que sitúe las llamadas a esta función antes de cualquier etiqueta html o head .

Todos los parámetros excepto name son opcionales . Si sólo se especifica el parámetro name , la cookie con ese nombre se borrará del cliente remoto . También puede sustituir cualquier parámetro por una cadena de texto vacía ( " " ) y saltar así ese parámetro . Los parámetros expire y secure son números enteros y no se pueden saltar con una cadena de texto vacía . En su lugar utilice un cero ( 0 ) . El parámetro expire es un entero de tiempo típico de UNIX tal como lo devuelven las funciones time( ) o mktime( ) . El parámetro secure indica que la cookie se debe transmitir única y exclusivamente sobre una conexión segura HTTPS .

Fallos habituales :

Las cookies no se hacen visibles hasta la siguiente carga de una página para la que la cookie deba estar visible .

Las llamadas múltiples a setcookie( ) en el mismo script se ejecutarán en orden inverso . Si está intentando borrar una cookie antes de insertar otra , debe situar la llamada de inserción antes de la de borrado .

A continuación se muestran algunos ejemplos: :

Ejemplo 1 . setcookie( ) , ejemplos

 
setcookie(

 
"TestCookie"

 
,"Test

 
Value")

 
;

 
setcookie("TestCookie",$value,time()+3600)

 
;

 
/

 
*

 
expire

 
in

 
1

 
hour

 
*

 
/

 
setcookie("TestCookie",$value,time()+3600

 
,"

 
/

 
~rasmus

 
/

 
"

 
,".utoronto.ca",1)

 
;





Tenga en cuenta que el campo value de la cookie se codifica como URL ( urlencode ) automáticamente cuando envía la cookie . Cuando ésta se recibe , se descodifica autómaticamente y se asigna a una variable con el mismo nombre que el nombre de la cookie . Para ver el contenido de nuestra cookie de prueba en un script , simplemente utilice uno de los siguientes ejemplos :

 
echo

 
$TestCookie

 
;

 
echo

 
$HTTP_COOKIE_VARS["TestCookie"]

 
;





También puede utilizar arrays de cookies empleando la notación de array en el nombre de la cookie . Esto tiene como efecto establecer tantas cookies como elementos de array , pero cuando el script recibe la cookie , se guardan los valores en un array con el nombre de la cookie :

 
setcookie(

 
"cookie[three]"

 
,

 
"cookiethree

 
"

 
)

 
;

 
setcookie

 
(

 
"cookie[two]"

 
,

 
"cookietwo

 
"

 
)

 
;

 
setcookie

 
(

 
"cookie[one]"

 
,

 
"cookieone

 
"

 
)

 
;

 
if

 
(

 
isset

 
(

 
$cookie

 
)

 
)

 
{

 
while

 
(

 
list

 
(

 
$name

 
,

 
$value

 
)

 
=

 
each

 
(

 
$cookie

 
)

 
)

 
{

 
echo

 
"$name

 
==

 
$value

 
br

 
\n"

 
;

 
   }

 
}





Para obtener más información sobre las cookies , consulte la especificación de cookies de Netscape , que se encuentra en http : / /www.netscape.com / newsref / std / cookie_spec.html .

Microsoft Internet Explorer 4 con Service Pack 1 no funciona correctamente con las cookies que tienen asociado el parámetro path .

Netscape Communicator 4.05 y Microsoft Internet Explorer 3.x funcionan aparentemente de manera incorrecta cuando no se especifican los parámetros path y time .