informaticaPC

Tutorial de PHP

Cookies en PHP

Crear Cookies en PHP

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
?>

Descargar ejemplo

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).

Cookies en PHP

Más información

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

Información

Si vas a usar sesiones en PHP debes saber que según la configuración por defecto de PHP se hará uso de Cookies.

Comprobar si existe una Cookie

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>";
?>

Descargar ejemplo

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.

Más información

Vea también: [ $_COOKIE ] - [ isset() ]

Comprobar si están activadas las Cookies

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";
?>

Descargar ejemplo

Más información

Vea también: [ $_COOKIE ] - [ header() ] - [ isset() ]

Obtener el valor de una Cookie

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";
?>

Descargar ejemplo

Más información

Vea también: [ $_COOKIE ]

Eliminar Cookies en PHP

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>";
?>

Descargar ejemplo

Información

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.

Más información

Vea también: [ $_COOKIE ]

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso