Una Cookie es un pequeño archivo de texto que podemos guardar en el navegador web del usuario con diversos fines, como el registrar ciertas preferencias de mismo respecto a nuestra página web para cargarlas cada vez que acceda a ella.
Para crear una Cookie en PHP, antes de enviar ningún otro dato al navegador web usaremos la función de PHP setcookie() indicando el nombre de la misma, su valor y el tiempo de vida en formato UNIX Timestamp (una vez transcurrido dicho periodo será eliminada por el navegador web):
<?php
setcookie("nombre", 1, time() + (60*2) ); // Crea una Cookie con un tiempo de vida de 2 minutos
?>
Observa que para indicar el tiempo de vida como usamos la función time(), que devuelve el número de segundos desde el 1 de Enero de 1970.
Si usas el navegador web Firefox podrás ver información sobre las cookies utilizando la barra de herramientas de la extensión Web Developer, complemento indispensable para todo aquel que le guste o se dedique profesionalmente a crear páginas web (en el momento de confeccionar el presente curso la versión para el navegador Google Chrome no incluye dicha opcion).

Vea también: [ Cookies en PHP ] - [ setcookie() ] - [ time() ] - [ UNIX Timestamp ]

Vea también: [ Web developer para Firefox ] - [ Web developer para Google Chrome ]

Si vas a usar sesiones en PHP debes saber que según la configuración por defecto de PHP se hará uso de Cookies.
Para comprobar si existe una Cookie usaremos el array asociativo $_COOKIE del siguiente modo:
<?php
if( isset( $_COOKIE['nombre']) )
{
echo "<p>La cookie ha sido creada</p>";
}
else
{
echo "<p>La cookie no existe, la creamos</p>";
// Crea una Cookie con un tiempo de vida de 2 minutos
setcookie("nombre", 1, time() + (60*2) );
}
echo "<a href='02_cookies_comprobar.php'>Haz clic aquí para recargar la página</a>";
?>
No podremos usar isset() después de haber creado la Cookie con setcookie() ya que el array asociativo $_COOKIES se actualizará tras recargar la página actual u otra.
En el siguiente ejemplo hemos creado la función comprobarCookies() con la que podremos comprobar si las Cookies están activas en el navegador web del usuario.
Tal y como hemos comentado en el apartado anterior, será necesario recargar la página web o cargar otra para que se actualice $_COOKIE (y poder entonces usar nuestra función), por lo tanto en el ejemplo hemos usado la función de PHP header() para cargar otra página.
03_cookies_activas_1.php:
<?php
setcookie("nombre", 1, time() + (60*2) );
header("Location: 03_cookies_activas_2.php");
?>
03_cookies_activas_2.php:
<?php
function comprobarCookies()
{
$activas = false;
if( isset($_COOKIE['nombre']) )
$activas = true;
return $activas;
}
// ---------------
if( comprobarCookies() == true )
echo("Las Cookies están activas");
else
echo "Las Cookies están desactivadas";
?>
Para leer el valor de una Cookie tan sólo hemos de acceder al valor contenido en el array asociativo $_COOKIES, como mostramos en el siguiente ejemplo:
04_cookies_activas_1.php:
<?php
setcookie("nombre", "informaticapc.com", time() + (60*2) );
header("Location: 04_cookies_leer_2.php");
?>
04_cookies_activas_2.php:
<?php
if( isset($_COOKIE['nombre']) )
echo "El valor de la Cookie 'nombre' es [".$_COOKIE['nombre']."]";
else
echo "No existe la Cookie";
?>

Vea también: [ $_COOKIE ]
Para eliminar una Cookie en PHP tan sólo debemos volver a crearla indicando una fecha anterior a la actual.
05_cookies_eliminar_1.php:
<?php
setcookie("nombre", "informaticapc.com", time() + (60*2) );
header("Location: 05_cookies_eliminar_2.php");
?>
05_cookies_eliminar_2.php:
<?php
if( isset($_COOKIE['nombre']) )
{
echo "Eliminamos la Cookie";
setcookie("nombre", "", time() - 1 );
}
else
{
echo "No existe la Cookie";
}
echo "<p><a href='05_cookies_eliminar_2.php'>Haz clic para recargar la página y comprobar si existe la Cookie</a></p>";
?>

Si usáramos la función de PHP unset() únicamente la borraríamos del array asociativo $_COOKIES pero continuaría en el navegador web del usuario, y al recargarse la página o ser cargada otra se volveria a recuperar su valor.

Vea también: [ $_COOKIE ]