Sie sind auf Seite 1von 13

INSTITUTO TECNOLGICO SAN AGUSTN

Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Manejo de sesiones en PHP
Variable $_SESSION[]
Es un array asociativo que contiene variables de sesin disponibles para el script
actual. Ver la documentacin de Funciones de sesin para ms informacin sobre
su uso.
session_start() - Iniciar una nueva sesin o reanudar la existente
session_destroy Destruye toda la informacin registrada de una sesin
Funcin isset()
Determina si una variable est definida y no es NULL. Si una variable ha sido
removida con unset(), est ya no estar definida. isset() devolver FALSE si
prueba una variable que ha sido definida como NULL. Tambin tenga en cuenta
que un byte NULL ("\0") no es equivalente a la constante NULL de PHP.Si son
pasados varios parmetros, entonces isset() devolver TRUE nicamente si todos
los parmetros estn definidos. La evaluacin se realiza de izquierda a derecha y
se detiene tan pronto como se encuentre una variable no definida.
Funcin unset()
unset() destruye las variables especificadas. El comportamiento de unset() dentro
de una funcin puede variar dependiendo de qu tipo de variable que se est
tratando de destruir. Si una variable global es unset() dentro de una funcin, solo la
variable local es destruida. La variable en el entorno de la llamada mantendr el
mismo valor anterior a la llamada a unset().

Aplicacin prctica (Gua de instrucciones)


1. Descomprima el material que se le ha enviado al correo electrnico adjunto con
esta gua de aprendizaje en el directorio C:/AppServ/www

El nombre de la
carpeta donde se
guardaran los archivos
web es sesiones.

Es posible acceder a cada


uno de los archivos de un
directorio
web
si
conocemos su direccin y
poseemos los permisos de

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
acceso

Qu significa eso en la web?


Que para todo contenido web debe manejarse criterios
de permisos y seguridad por lo contrario solo con
conocer la direccin del sitio o documento del mismo
podramos acceder a el

. Y bueno hay distintos tipos de usuarios y todos


podran hacer LOGIN dentro de un aplicativo web
(siempre y cuando estn registrados)
Pero pueden todos crear usuarios libremente? No en
todos los aplicativos o que pensaramos de poder
crear libremente y sin permisos usuarios en las bases
de datos bancarias?

Crearemos una base de datos con el nombre de GestionUsuariosBD y all crearemos


la siguiente tabla: Cdigo de usuario ser la llave primaria.
Observe que hay un campo ROL
para definir qu tipo de Usuario
queremos crear:

Administrador
(ADMIN)
Usuario normal (USER)

ADMIN sera capaz de crear otros


usuarios.
USER ser capaz solo de consultar su
informacin. Luego de modificarla y
darse de baja en la base de datos

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios

Crear una tabla en la base


de datos con el nombre
usuarios

Nickname ser la llave primaria

Correo tendr la caracterstica


UNIQUE

INSERTAMOS REGISTROS
Observar cuidadosamente
nombre de usuario y
contrasea.

el
la

Encriptamos la contrasea con la


funcin MD5

NickName Usuarios

Password Usuarios

Tipo de Usuario
Luego de haber insertado la
contrasea se encripta

El nico usuario que insertaremos al inicio de la aplicacin ser el usuario ADMIN con
contrasea ADMIN123. Cuando instalamos una aplicacin como MySQL o tratamos de
entrar a PhpMyAdmin se nos pide autenticacin de usuario. Por defecto hay usuarios del
sistema definidos para labores de seguridad y otras funciones administrativas. Este
usuario en el mundo de la informtica se le conoce normalmente como ROOT.

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Y qu hay de la interfaz? Todos los usuarios sern capaces de hacer login, pero segn
el TIPO DE USUARIO se mostrara una interfaz distinta, una para administrador y una
para usuarios normales.
LOGIN DE USUARIOS

USUARIOS NORMALES

USUARIOS (ADMINISTRADORES)

Tanto
usuarios
normales
como
administradores debern ser capaces de
cerrar sesin as como son capaces de hacer
login. Al cerrar sesin se volver al index

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios

El archivo comprimido que se enva continuacin solo los archivos que se muestran
encerrados en un circulo son los archivos que se han enviado completos, los otros sern
completados
por
el
estudiante
siguiendo
este
tutorial:

Estos corresponden a las ventanas que se mostraron en la hoja


anterior (LOGIN, REGISTRO Y PANEL DE USUARIO NORMAL)

Primero crearemos los archivos PHP necesarios para conectar, iniciar una sesin y cerrar
dicha sesin.

conectar.php

Conectamos a la base de datos


GestionUsuariosBD (Nada tiene
que ver el uso de mayusculas)

Al invocar session_start() reanudamos o iniciamos


una nueva sesin de usuarios. Inmediatamente
podemos usar la variable $_SESSION
salir.php

La funcin session_destroy() literalmente destruir toda


la informacin relacionada con el inici de session y la
variable $_SESSION

Note que antes de destruir la sesin primero la iniciamos o la


reanudamos segn sea el caso incluyendo para ello el archivo
conectar.php

QU ES LA VARIABLE $_SESSION[]?
La variable $_SESSION[] es una variable super global
la cual tiene comportamiento de arreglo de datos.
Por su carcter de variable global puede ser invocada
en cualquier lugar de un proyecto web siempre y se
haya iniciado o reanudado sesin con session_star().
Podemos almacenar una gran cantidad de datos (e
incluso otros arreglos) en la variable $_SESSION[]

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
La cuestin es que sino manejamos los permisos necesarios podemos acceder a
cualquiera de los archivos que se muestran a continuacin

Esta pgina solo debera ser vista por


el ADMINISTRADOR cuando esta
logueado.

Esta pgina solo debera ser vista por


usuarios normales cuando estan
logueado.

Aqu hay ms peligro an!


Estos archivos vinculan con la base de
datos, y de ninguna manera puede ser
posibles verlos o accederlos desde el
navegador sin los permisos requeridos

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Primera parte (Iniciando Sesin o Login)

El archivo index.php ser el primero que se ejecutara al


escribir la carpeta del proyecto
Nombres de los inputs

username

Usando estos nombres


capturamos
con
$_POST[]
los
datos
escritos

password

Al hacer clic nos llevara al


archivo proceso_login

En el archivo proceso_login.php escribiremos el cdigo necesario para iniciar sesin


siempre y cuando el usuario exista lo llevar a la pgina que hemos dispuesto para el

Comprobamos que hemos pulsado el


botn entrar_btn para controlar la
seguridad

Una vez requerido el archivo conectar.php


iniciaremos sesin gracias a session_start() y
podremos hacer uso de la variable $_SESSION[]

Encriptamos
la
contrasea
anteponiendo la funcin MD5
Guardamos en
las
variables
creadas dentro
de $_SESSION[]
los datos de la
tabla usuarios
guardados en
$datosUsuarios

Guardamos en una variable (que


creamos
$datosUsuarios
los
resultados de la consulta usando
mysql_fetch_assoc()

Estos datos siempre


estarn
disponibles
mientras no cerremos
sesin

Creamos una variable en $_SESSION[] para


all controlar el login

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios

Si el usuario NO ESTA
REGISTRADO ponemos
un enlace al index para
volver a iniciar sesin

Si el rol del usuario es ADMIN lo


redirigimos a registrar.php
Si el rol del usuario es USER lo
redirigimos a panel.php
Sino es ninguna volvemos al index

Si el usuario y la
contrasea no coinciden
ponemos un enlace al
index para volver a iniciar
sesin
Si
tratamos
de
acceder
directamente
desde
el
navegador, volveremos al index.

Registrando usuarios en la base de datos: Solo el administrador puede crear


usuarios.

fullname

Estos son los nombres de


los inputs que estn en el
archivo de registro.

username

email

password
rol

nacionalidad

direccin
Al oprmir registrar invocamos el
archivo proceso_registrar.php

aceptar

Al cerrar sesin invocamos el


archivo proceso_salir.php

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Programando el archivo para cerrar sesin: proceso_salir.php

Si no existe la variable logueado dentro de


la variable $_SESSION[] significa que no
hemos iniciado sesin.

Verificamos que estemos logueados y que


el usuario sea de tipo administrador
Solo procederemos a capturar
los
datos
si
hemos
seleccionado el checkbox

Encriptamos la contrasea usando la


funcin MD5

Insertamos los datos (ya la


contrasea esta encriptada)

Una vez insertado los datos


volvemos a registrar.php
Sino aceptamos el checkbox
de registrar mandamos un
mensajepara volver a registrar

La contrasea ha sido encriptada y


almacenada en la base de datos

Volvemos al index si no tenemos los


permisos para estar en esta pgina

El usuario que creamos es de tipo


administrador

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Programamos el panel de usuario para que este visualice su informacin:

Incluimos el archivo de conexin de esta forma


reanudamos la sesin existente y podremos acceder
a los datos de $_SEESION[]

En cada uno de los inputs que estn en el archivo


panel.php mostramos los datos del usuario de sesin
iniciada

Para probar crearemos un nuevo usuario (haciendo primero login


como administrador) de tipo USER (usuario normal)

10

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Luego cerramos sesin e ingresamos como ese usuario (en este caso MARGARITA)

Vemos que hemos iniciado sesin correctamente

Es esta aplicacin WEB SEGURA?


Como conocemos la estructura de los ficheros
(tratemos de navegar entre ellos a ver qu sucede

Cmo podemos ir a registro (sino somos administradores?


Cmo podemos volver al index si ya hemos iniciado sesin?

Conclusin: NO HAY SEGURIDAD!


11

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios

Aplicando seguridad bsica: Una de los trabajos ms grandes en PHP es


proporcionarles niveles confiables de seguridad a los aplicativos web (en este
caso jugaremos un poco con la funcin isset() y hedaer()).

Si estamos logueados y nuestro rol


es USER nos vamos al panel

Si estamos logueados y nuestro rol


es ADMIN nos vamos a registrar

Si estamos logueados y nuestro


rol NO ES ADMIN, nos
redirigimos al panel (USER)

SINO ESTAMOS LOGEADOS


volvemos al INDEX

12

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

INSTITUTO TECNOLGICO SAN AGUSTN


Montera - Crdoba
PROGRAMA TCNICO
INFORMTICA Y REDES
MODULO
CURSO
Programacin
Internet II
Manejo de Sesiones PHP
Gua de aprendizaje
03/12/2014
Docente
Diego Fernando Barrios
Si estamos logueados y nuestro
rol NO ES USER, nos redirigimos
a registrar (ADMIN)

SINO ESTAMOS LOGEADOS


volvemos al INDEX

Cerremos sesin y volvamos a probar la seguridad, si lo has hecho todo bien tu aplicacin
deber gestionar permisos de tal forma que solo los ADMINISTRADORES registren y los
USUARIOS NORMALES vern sus datos

RETO NAVIDEO!
Agregar las funciones actualizar datos y eliminar (dar de baja) a los
usuarios de tipo USER
Adicionar la funcin listar usuarios y buscar usuarios a los usuarios de
tipo ADMIN

Feliz navidad e infinitos xitos en sus vidas! Los invito a seguir cosechando
triunfos durante toda su existencia!

13

Instituto tecnolgico San Agustn


Formamos los tcnicos que las empresas contratan

Das könnte Ihnen auch gefallen