Diferencia entre revisiones de «PHP Validando usuarios»
Ir a la navegación
Ir a la búsqueda
| Línea 17: | Línea 17: | ||
* Partimos por tanto dunha páxina de validación cun formulario. | * Partimos por tanto dunha páxina de validación cun formulario. | ||
| − | : Nome da páxina: '''UD4_Exemplo1_Validacion_Formulario. | + | : Nome da páxina: '''UD4_Exemplo1_Validacion_Formulario.php''' |
::<syntaxhighlight lang="java" line enclose="div" highlight="2,3" > | ::<syntaxhighlight lang="java" line enclose="div" highlight="2,3" > | ||
<?php | <?php | ||
Revisión del 19:05 7 nov 2016
Introdución
- Un aspecto ao que case sempre imos enfrontarnos é ao de permitir o acceso a certas páxinas en función dos permisos que teña un determinado cliente.
- Para obter ditos permisos teremos que validar ao usuario e identificalo.
- A identificación case sempre vai vir dun formulario no que o usuario introduce o seu login-password.
- Nos recollemos ditos datos e normalmente faremos unha consulta a unha base de datos para comprobar que o usuario existe.
- Neste punto imos ver como podemos facer para que o usuario non poida entrar nas páxinas se non está validado.
- Como aínda non sabemos 'conectar' con bases de datos imos supoñer que o usuario ten que ter de nome 'pepe' e de password '12345'. En caso doutra combinación supoñemos que o usuario non está autorizado para acceder ao sitio web.
- Fixarse que estamos implementando un mecanismo de autenticación de usuarios.
- Non indicamos nada acerca dos permisos que ten dito usuario. Por exemplo, un administrador e un usuario son usuarios que teñen dereito de conexión ao sitio web, pero cada un deles terá permisos diferentes para poder realizar accións distintas...
- Partimos por tanto dunha páxina de validación cun formulario.
- Nome da páxina: UD4_Exemplo1_Validacion_Formulario.php
1 <?php 2 session_start(); 3 unset($_SESSION['autenticado']); 4 5 ?> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 7 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 8 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> 9 <head> 10 <meta charset="utf-8" /> 11 <title>Formulario</title> 12 <style> 13 .formularios{ 14 width: 30%; 15 margin: 0px auto; 16 } 17 .etiqueta{ 18 float: left; 19 width: 190px; 20 } 21 .botonesformularios{ 22 width: 50%; 23 margin: 30px auto; 24 text-align: center; 25 } 26 </style> 27 </head> 28 <body> 29 <form id="frmValidacion" class="formularios" method="post" action="UD4_Exemplo1_Validacion_Usuarios.php"> 30 <div> 31 <div class='etiqueta'>Login:</div> 32 <input type="text" size="15" maxlength="15" name="txtLogin" /> 33 </div> 34 <div> 35 <div class='etiqueta'>Password:</div> 36 <input type="password" size="15" maxlength="15" name="txtPassword" /> 37 </div> 38 <div class="botonesformularios"> 39 <input type='submit' value="ENVIAR" /> 40 </div> 41 </form> 42 43 </body> 44 </html>
- Liña 2: Sempre debemos ter o session_start() ao comezo da páxina se imos traballar con variables de sesión.
- Liña 3: Dita variable de sesión estará explicada posteriormente. Adiantar que é a variable que imos utilizar para deixar visualizar ao usuario as páxinas protexidas (que requiran unha autenticación previa).
- Visualizamos isto:
- O seguinte será validar o usuario e comprobar que coincide có usuario/password indicado.
- Nome da páxina: UD4_Exemplo1_Validacion_Usuarios.html
1 <?php 2 session_start(); 3 4 // Con isto impedimos que poidan cargar directamente a páxina ou 5 // que non se envíen datos 6 if (!isset($_POST['txtLogin']) || !isset($_POST['txtPassword']) || 7 empty($_POST['txtLogin']) || empty($_POST['txtPassword'])){ 8 header("location:UD4_Exemplo1_Validacion_Formulario.php"); 9 } 10 // Eliminamos caracteres 11 $usuario = filter_var($_POST['txtLogin'],FILTER_SANITIZE_STRING); 12 $password = filter_var($_POST['txtPassword'],FILTER_SANITIZE_STRING); 13 14 if (($usuario=='pepe') && ($password=='12345')){ 15 $_SESSION['autenticado']=1; 16 header('location:UD4_Exemplo1_Validado.php'); 17 } 18 else { 19 $_SESSION['autenticado']=0; 20 header('location:UD4_Exemplo1_Validacion_Formulario.php'); 21 } 22 ?>
- Liña 2: Sempre debemos ter o session_start() ao comezo da páxina se imos traballar con variables de sesión.
- Liñas 14-17: En caso de coincidir o login/password (nunha situación real teríamos que facer unha consulta a unha base de datos) utilizamos unha variable de sesión de nome autenticado e damos un valor de 1. En caso contrario terá un valor de 0.
- Dita variable debemos usala en todas as páxinas onde sexa necesario que o usuario estea autenticado. Vexamos un exemplo na seguinte páxina.
- Nome da páxina: UD4_Exemplo1_Validado.html
1 <?php 2 session_start(); 3 4 if ($_SESSION['autenticado']==0) { 5 header('location:UD4_Exemplo1_Validacion_Formulario.php'); 6 } 7 8 ?> 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 10 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> 12 <head> 13 <title>Usuario autenticado</title> 14 </head> 15 <body> 16 <h1>Se podes ver isto es un usario autenticado...</h1> 17 18 <a href="UD4_Exemplo1_Validacion_Formulario.php">Pulsa para volver a validarte...</a> 19 </body> 20 </html>
- Liña 2: Sempre debemos ter o session_start() ao comezo da páxina se imos traballar con variables de sesión.
- Liñas 4-7: É onde facemos a validación do usuario. Se dito usuario non foi autenticado, entón irá a páxina inicial.
-- Ángel D. Fernández González -- (2016).