Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2. autenticacion.php: Contiene el programa que autentifica que el usuario tenga acceso, de tenerlo,
activa:
3. conexion.php: programa que gestiona la conexión a la base de datos que se realiza con PDO.
A ) Base de datos
Usamos la base de datos ”zoologico”, vea Tutorial básico de PostgreSQL, que tiene una tabla
”mascotas” y creamos otra tabla llamada ”usuarios” según instrucciones siguientes:
1 create table usuarios (
2 id serial primary key ,
3 email varchar (60) not null unique ,
4 clave varchar (64) not null ) ;
La tabla mascotas está explicada en el Tutorial básico de PostgreSQL. Esto es para trabajar
con datos simples y sin relaciones.
13 < input type = " submit " value = " Enviar datos " >
14 < input type = " reset " value = " Restaurar formulario " >
15 </ form >
16 </ body >
17 </ html >
Revisar Cómo hacer una página web en HTML, así que empecemos por las partes nuevas
Explicar las partes !!!!
a) En la sentencia form, method indica que el envio de datos es privado y action, depende de
botón submit, llama al programa autenticacion.php
b) en la sentencia input para email, type indica que el dato de entrada en una dirección email,
required indica que no avance mientras no se ingrese una dirección válida,
c) autofocus indica que el cursor al ingresar al formulario se coloque en este campo.
d ) placeholder muestra un ejemplo de los datos esperados
e) en la sentencia input para clave, type password cambia el dato entrado por un * para
ocultar el valor ingresado, required indica que no avance mientras no se ingrese una clave
válida1
f ) pattern es el patrón de datos esperados, la clave tiene una longitud entre 6 y 8 caracte-
res, cadena formada por letras minúsculas, mayúsculas, números y al menos uno de los
caracteres especiales indicados .$_&
g) en la sentencia input submit este botón al presionado activa Action para llamar programa
autenticacion.php
h) en la sentencia input reset este botón al presionado limpia los datos del formulario para
volver a empezar.
De las sentencias input merecen especial atención la opción name que es el nombre del
datos a ser transferido al programa autenticacion.php, en el input email es ”email” y en
clave es ”clave”. NO confundir tipo de datos con name de dato.
C ) El programa conexion.php
1
Algo interesante en la línea en la cual estamos encriptando la clave del usuario utilizando la función pass-
word_hash() de manera que no sea legible, por ejemplo para el administrador de la base de datos o en el caso de
algún hackeo, así mismo puede utilizar la función password_verify() que verifica la clave real con la clave encriptada.
3
1 <? php
2 // Este archivo conecta la base de datos a un objeto PDO
3
4 $contrase ñ a = " estudiantes " ;
5 $usuario = " estudiantes " ;
6 $n om br eBa se De Dat os = " mascotas " ;
7 $rutaServidor = " localhost " ;
8 $puerto = " 5432 " ;
9 try {
10 $con = new PDO ( " pgsql : host = $rutaServidor ; port = $puerto ; dbname =
$n om br eBa se De Dat os " , $usuario , $contrase ñ a ) ;
11 $con - > setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRM ODE_EXCE PTION ) ;
12 } catch ( Exception $e ) {
13 echo " Ocurri ó un error con la base de datos : " . $e - > getMessage
() ;
14 }
Para realizar tal conexión nos apoyaremos de la función ”pdo2 ”. La cual requiere 5 parámetros
para un correcto funcionamiento. Vea la figura siguiente:
D ) El formulario autenticacion.php
1 <? php
2 unset () ;
3 session_start () ;
2
PDO significa PHP Data Objects, Objetos de Datos de PHP, una extensión para acceder a bases de datos.
Con PDO accede a diferentes sistemas de bases de datos con un controlador específico (MySQL, SQLite, Oracle,
PostgreSQL, etc...) mediante el cual se conecta. Independientemente del sistema utilizado, se emplearán siempre los
mismos métodos, lo que hace que cambiar de uno a otro resulte más sencillo.
3
no olvides cambiar el usuario y contraseña a los que usas en tu base de datos,
4
La siguiente figura:
i) compara la clave del registro con la clave dada por el usuario y si son iguales crea variables
de session
j ) esta sentencia crea una para email y la otra para clave
k ) la sentencia header llama al formulario menu.php
l ) si la comparacion, punto 9, NO se cumple ejecutar header llamando al formulario index.php
E ) el formulario menu.php
1 <? php
2 session_start ;
3 if ( isempty ( $_SESSION [ ' email ' ]) or isempty ( $_SESSION [ ' clave ' ]) )
4 header ( " location : index . php " )
5 ?>
6 <! DOCTYPE html >
7 < html lang = " en " >
8 < head >
9 < meta charset = " UTF -8 " >
10 < meta name = " viewport " content = " width = device - width , initial - scale
=1.0 " >
11 < title > Document </ title >
12 </ head >
13 < body >
14 <ul >
15 <il > Inicio </ il >
16 <il > Tablas </ il >
17 <il > Procesos </ il >
18 <il > Reportes </ il >
19 <il > Salida </ il >
20 </ ul >
21 </ body >
22 </ html >