Listado completo de tutoriales

Temario del Tutorial35 - Borrado de una cookie


Para borrar una cookie se debe llamar a la función setcookie con una fecha anterior a la actual.

También tengamos en cuenta que una cookie tiene una fecha de expiración por lo que si un visitante reingresa a nuestro sitio y la cookie expiró el navegador no la enviará.

Haremos un algoritmo muy común a muchos sitios que administran webmail. Recordaremos en una cookie el mail ingresado por el operador, el código fuente de la primera página es la siguiente:

pagina1.php

<html>

<head>
  <title>Problema</title>
</head>

<body>
  <form action="pagina2.php" method="post">
    Ingrese su mail:
    <input type="text" name="mailusuario" value="<?php if (isset($_COOKIE['mail'])) echo $_COOKIE['mail']; ?>">
    <br>
    <input type="radio" name="opcion" value="recordar">
    Recordar en esta computadora el mail ingresado.
    <br>
    <input type="radio" name="opcion" value="norecordar">
    No recordar.
    <br>
    <input type="submit" value="confirmar">
  </form>
</body>

</html>

Es decir, disponemos un control text y como valor de la misma verificamos si el cliente tiene ya una cookie guardada en su máquina, en caso afirmativo la mostramos dentro del text modificando la propiedad value.

Mediante dos controles de tipo radio daremos la posibilidad al cliente que el navegador recuerde o no el mail ingresado.

Como es sabido, la primera vez que accedamos a la página no existe la cookie llamada mail.

La segunda página:

<?php
if ($_REQUEST['opcion'] == "recordar")
  setcookie("mail", $_REQUEST['mailusuario'], time() + (60 * 60 * 24 * 365), "/");
elseif ($_REQUEST['opcion'] == "norecordar")
  setcookie("mail", "", time() - 1000, "/");
?>
<html>

<head>
  <title>Problema</title>
</head>

<body>
  <?php
  if ($_REQUEST['opcion'] == "recordar")
    echo "cookie creada";
  elseif ($_REQUEST['opcion'] == "norecordar")
    echo "cookie eliminada";
  ?>
  <br>
  <a href="pagina1.php">Ir a la otra página</a>
</body>

</html>

En esta página verificamos cuál control radio está seleccionado, si es el primero, creamos la cookie mail con una vida de 1 año:

  setcookie("mail",$_REQUEST['mailusuario'],time()+(60*60*24*365),"/");

En caso que esté seleccionado el segundo radio, creamos la misma cookie pero con una fecha de caducidad inferior a la actual (con esto estamos virtualmente eliminando la cookie):

  setcookie("mail","",time()-1000,"/");


Problema resuelto.

Copiar el contenido de este cuadro de texto al VS Code y almacenarlo en la carpeta c:\xampp\htdocs con un nombre con extensión php.
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear:
http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

pagina2.php

Problema propuesto.

Confeccionar una página que simule ser la de un periódico. La misma debe permitir configurar qué tipo de titular deseamos que aparezca al visitarla, pudiendo ser:

Noticia política, Noticia económica o Noticia deportiva.

Mediante tres objetos de tipo radio, permitir seleccionar qué titular debe mostrar el periódico. Almacenar en una cookie el tipo de titular que desea ver el cliente. La primera vez que visita el sitio deben aparecer los tres titulares.

Disponer un hipervínculo a una tercer página que borre la cookie creada.

Solución
pagina1.php

Ejecutar ejemplo
pagina2.php

pagina3.php

Retornar