Me he hecho un blog en PHP: El monstruo de las galletas

He trabajado en PHP siempre a muy alto nivel, primero con WordPress, y luego vía Codeigniter, así que me apetecía bajar un poco de nivel y hacer un poco de fontanería, con un objetivo claro, aprender qué hay por debajo de todo lo que trabajo.

En esta serie veremos cómo crear un blog muy simple usando las opciones más básicas que ofrece PHP.

La idea:

En esta entrega comentaremos cómo leer las cookies (para que el login tenga algo de sentido), y cómo borrarlas (para hacer una función de logout decente).

Consumiendo cookies

Una vez que tenemos nuestra cookie creada, el siguiente paso es consumirla, lo cual se hace de una manera similar a la que hacíamos con las opciones get y post, usando la variable $_COOKIE.

if (!isset($_COOKIE['username'])) {
		echo "You shouldn't be here";
	}

En el código anterior lo que hacemos es comprobar que el valor de la cookie esté fijado usando la función isset. Si no existe mostraremos un mensaje de error al usuario. En caso de que el código sea correcto podremos continuar, mostrando un mensaje de aceptación.

Una de las cosas interesantes de comprobar la cookie es que podemos usarla para ocultar el menú de login, como suelen hacer los blogs habitualmente, de tal manera que podemos ampliar el código del primer artículo que usabamos para hacer login por esto:

<?php if (!isset($_COOKIE['username'])): ?>
	<form action="login.php" method="post">
        ...
	</form>
<?php else : ?>
	<p>Logged in as <?php echo $_COOKIE['username']."." ?> <a href="admin/index.php">Go to admin</a>
	</p>
<?php endif ?>

Para consumir el valor de la cookie podremos usar el siguiente código, que en este caso será un nombre de usuario, y lo mostraremos junto con un mensaje de saludo.

	<p>Welcome <?php echo $_COOKIE['username'];?> <a href='../index.php'>Go home</a></p>

Eliminando cookies

Para eliminar cookies existen varios métodos, pero hubo uno en especial que me llamó la atención cuando estaba haciendo el post, que consiste en establecer otra cookie idéntica, pero con el valor vacío y la fecha anterior a la actual, convirtiendola en errónea (o caducada) y causando que el navegador la borre.

Este proceso lo vamos a realizar con un fichero llamado logout.php que contendrá el código que elimina la cookie, y muestra un mensaje de “Sesión cerrada correctamente”.

	setcookie("username","", time() - 3600);

Una vez hayamos pasado por esta página la cookie se borrará, tendremos que autenticarnos de nuevo para poder acceder al panel de administración, y volveremos a ver el panel de identificación . En la próxima entrega veremos cómo podemos enlazar el php que tenemos a una base de datos mysql, y obtener los datos desde ahí.

Más información:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s