Este documento presenta un ejemplo de cómo implementar la programación orientada a objetos en PHP para validar la sesión de un usuario. Explica cómo crear archivos PHP para el formulario de inicio de sesión, la conexión a la base de datos, la clase que valida el usuario y la página a la que se redirecciona el usuario una vez iniciada la sesión. También describe los pasos para recibir los datos del usuario, consultar la base de datos para verificar las credenciales, iniciar la sesión si es válido y redirigir al usuario.
1. Programación Orientada a Objetos II
Yan David Burbano Amariles
PROGRAMACIÓN ORIENTADA A OBJETOS II
Tomando como base el documento Programación Orientada a Objetos I
realizaremos un ejemplo más real de cómo aplicar este paradigma de
programación utilizando el lenguaje de programación PHP.
Realizaremos el ejemplo para validar sesión de usuario
EJEMPLO
Creamos nuestra carpeta del proyecto en nuestro servidor de aplicaciones,
para este caso utilizaremos EasyPHP.
Crearemos dentro de mi carpeta del proyecto los archivos con extensión PHP.
1. index.php
2. conexiondb.php
3. validausuario.php
4. inicio.php
El archivo index.php contiene el html del formulario donde el usuario puede
iniciar sesión, es la página que recibe al usuario por primera vez.
El archivo conexiondb.php contiene los datos de conexión a la base de datos,
el nombre del servidor, nombre de usuario y la contraseña (si la tiene) para la
base de datos.
El archivo validausuario.php contiene la clase que recibe los datos pero
utilizando en esta oportunidad POO.
El inicio viene siendo el html que recibe o que ve el usuario una vez se haya
iniciado sesión de forma satisfactoria.
2. Programación Orientada a Objetos II
Yan David Burbano Amariles
index.php
Este código me muestra una página así:
Importante resaltar varias cosas en el archivo index.php
Lo primero es que utilizaremos el método POST para el envío de datos. El
action nos indica que vamos a enviar dichos datos a la clase llamada
validasesión.php.
3. Programación Orientada a Objetos II
Yan David Burbano Amariles
conexiondb.php
Más adelante le agregaremos algo de seguridad a este archivo para que no
pueda ser accedido por nadie, ya que son datos muy importantes y
confidenciales. Por esta vez y para este ejemplo nos sirve que sea así.
Vamos a definir a continuación nuestro clase que recibe los datos pero
utilizando el paradigma de programación orientada a objetos.
4. Programación Orientada a Objetos II
Yan David Burbano Amariles
validausuario.php
Varias cosas para explicar:
Si vamos a iniciar sesión con un login y password debemos crear sesiones
para cuando el usuario sea correctamente validado. En este caso (PHP) las
sesiones se deben iniciar primero y cuando el usuario cierre su sesión se
deben destruir.
Para iniciar sesión se utiliza el session_start(); en todos los archivos o clases
que utilicen la sesión o en todas las clases que para poder acceder el usuario
debe haber iniciado satisfactoriamente una sesión.
5. Programación Orientada a Objetos II
Yan David Burbano Amariles
Para destruir la sesión se utiliza session_destroy(); pero este ítem lo veremos
más adelante, por ahora utilizaremos el iniciar sesión.
Utilizamos el error_reporting(E_ALL & ~E_NOTICE); para evitar que se nos
muestre notificaciones que parecen errores pero que no lo son pero que son
incomodos para que el usuario final los visualice.
Colocamos una palabra reservada llamada include_once la cual nos permite
llamar el contenido de un clase independiente. En este caso nos será de
mucha ayuda ya que solo debemos colocar ese include_once en todas las
clases donde requiera la base de datos sin necesidad de colocar el scritp
completo de conexión lo cual nos ahorra tiempo.
Luego aplicamos lo básico para la creación de la clase con el objeto y su
utilización. Pero vamos a explicarlo con calma y sin dolor…
Nuestra clase se llamara validacionLogin. Tendremos un solo método dentro
de mi clase que tendrá el único objetivo de consultar si existe un usuario con
los parámetros ingresados y si es válido que me redirija a un página de
bienvenida y si no es valido que emita un mensaje donde diga que no es válido
el login o el password.
En mi método recibo dos parámetros los cuales son $usuario y $password
Esos datos lo recibo fuera de mi clase validacionLogin, pero ya lo veremos con
más detalle.
Tenemos una sentencia sql la cual llamamos en mi variable definida como
$SQL, no tiene que llamarse así necesariamente, usted le puede colocar el
nombre que desee, tal cual como se definen las variables. Luego por medio de
una variable definida como $result sacamos los atributos de la consulta, en
este caso yo defino una variable llamada $var1 que tendrá el valor del nombre
6. Programación Orientada a Objetos II
Yan David Burbano Amariles
de mi tabla usuariosistema de mi base de datos. Luego por medio de un
condicional if verifico que si esa variable es vacia quiere decir que no el usuario
y la clave o ambas no coinciden y por lo tanto deducimos que el usuario no
existe. En cambio, si sucede al contrario quiere decir que la consulta fue
exitosa y por lo tanto la validación se realizó satisfactoriamente.
Si la validación es satisfactoria utilizo algo llamado Variables de Sesión, que
son variables cuyo contenido se mantendrá vigente mientras dure la sesión que
se inició.
Para definir las variables de sesión se utiliza la siguiente sintaxis.
$_SESSION['nombreSESSION'] = $result['nombre'];
A mi variable de sesión le estoy asignado el valor de mi variable.
Luego redirijo al usuario a la página principal de mi aplicación header
("location: inicio.php");
Fuera de la clase y por el método post recibo los dos datos enviados por medio
del formulario de nuestro archivo llamado index.php
Esas dos variables recibidas son las que yo envio por parámetros a mi método
que se encarga de validar el usuario. Por eso por medio de mi objeto llamado
$ObjPersona le envio los dos parámetros y son los dos parámetros que yo
utilizo para mi consulta.
7. Programación Orientada a Objetos II
Yan David Burbano Amariles
Es importante aclarar que debemos tener creada ya nuestra base de datos que
según mi ejemplo se llama db_ejemploPOO y mi tabla llamada usuariossistema
con los campos que se muestran a continuación.
Y claro que ya tenemos usuarios creados previamente para probar nuestro
ejemplo.
Y finalmente nuestro archivo donde entra en caso de haber sido validado
satisfactoriamente. Utilizamos la variable de sesión creada en nuestra clase.
Luego explicaremos como cerrar sesiones y como colocar más seguridad para
que no todos puedan ingresar a ciertas páginas de nuestra APP, por ahora es
una explicación básica para comprender el concepto de POO en un ejemplo
real y sencillo.
8. Programación Orientada a Objetos II
Yan David Burbano Amariles
Espero les haya sido de mucha utilidad.
Hasta la próxima
Twitter: @ohohdigoyo
www.facebook.com/edufinderpage
Facebook: facebook.com/ybrbn