viernes, 30 de mayo de 2014

Manejando sesiones en PHP (nivel básico)

Usar sesiones en PHP es de lo más sencillo que hay, siempre recomiendo usarlas en aplicaciones en donde se tenga que mantener una serie de valores constantes al pasar de una página a otra como es el caso típico de las sesiones de usuario,

he visto aplicaciones en donde se pasan los valores de inicio de sesión a través de cookies, o a través de la barra de direcciones con un parámetro del tipo: script.php?id=loquesea , esto es un espanto, una mala práctica de programación, y un riesgo de seguridad importante que compromete toda la aplicación inclusive al entorno donde se esta ejecutando, pero bueno, volviendo al tema de las sesiones, es una buena práctica mantener los datos de usuario en el servidor y no en forma local a través de cookies sino a través de sesiones,

no es el caso de este artículo pero aun es mucho más seguro guardar las sesiones en una base de datos, pero bueno no quiero irme más allá de la finalidad de hacer un "HOWTO" muy sencillo.

Si necesitáramos realizar una aplicación robusta, tendremos que tener en cuenta el uso de https y recurrir a algún framework como CodeIgniter que ya traen un sistema de manejo robusto de sesiones y nos abstraen de ciertas cuestiones técnicas que implican mayor conocimiento sobre seguridad en sesiones,

Básicamente:

para empezar a usar las sesiones debemos invocar a la función session_start();

para asignar un valor a la variable de sesión simplemente hacemos algo como:
$_SESSION ['usuario'] = 'MiUsuario';

Notese: que los valores son almacenados en un Array $_SESSION

para borrar una variable de sesión podemos hacerlo con unset()
unset($_SESSION['usuario']);

y para destruir una sesión completa , esto es como hacer un reset usamos:
session_destroy (); 

Ej.

<?php
// Si no existe crea una sesión "usuario"
session_start();
if (!isset($_SESSION['usuario'])){$sesion = "invitado";$_SESSION ['usuario'] = 'MiUsuario';}else{$sesion=$_SESSION ['usuario'];}
echo $sesion;
?>

<?php
// Si esta seteada la sesión "usuario" la destruye
session_start();
if (!isset($_SESSION['usuario'])){exit;}
session_destroy ();
?>

les recomiendo visitar el manual de PHP:
Funciones de sesión: http://ar2.php.net/manual/es/ref.session.php

en esta web se explayan mejor sobre la seguridad en las sesiones:
https://www.tarlogic.com/como-generar-sesiones-en-php-de-forma-segura

Por razones de tiempo,en este momento no puedo subir una aplicación de muestra, pero les sugiero seguirme en Facebook o Twitter (personal), Twitter (TallerdeScripts) donde iré subiendo algunos programas para que puedan probar.



Reacciones:

0 comentarios: