Usuario:ManuelRomero/ProgramacionWeb/php/Aut Ses Coo/ejercicios
De WikiEducator
Autentificación
Ficheros de usuarios
1.- Primero nos ubicamos en el directorio donde queramos añadir o crear el fichero cd /home/MiUsuario MiUsuario es vuestro propio directorio 2.-Ahora creamos un directorio para guardar esta información y nos movemos en él mkdir usuarios cd usuarios 3.-Una vez correctamente ubicados generamos el fichero de las password con la herramienta htpasswd La primera vez con opción -c para crear el fichero htpasswd -c misUsuarios maria htpasswd misUsuarios nieves htpasswd misUsuarios nieves
|
Leer con php datos de la autentificación
<?php echo "te has autentificado como:<br/>"; echo "Usuario: ". $_SERVER['PHP_AUTH_USER']."<br/>"; echo "Password: ". $_SERVER['PHP_AUTH_PW']."<br/>"; echo "Tipo de autentificacion: ". $_SERVER['AUTH_TYPE']; ?>
|
Accesos Restringidos
Tip: Ten en cuenta los propietarios de la carpeta (el grupo que pertenezca a www-data
|
Controlando accesos
Haz un programa en el que controlemos que el usuario con tu nombre y la misma password pueda acceder Solo se dejarán 3 intentos si al tercer intento no lo consigue se le anulará la posibilidad de seguir intentándolo Tip: En seguida veremos las variables de sesión, pero aún hay que recurrir a los campos ocultos, que muchas veces serán muy útiles :)
|
Sesiones
Localiza variables de sesión
Cuenta de visitas
<? session_start(); if (!isset($_SESSION["visitas"])){ $_SESSION["visitas"] = 1; }else{ $_SESSION["visitas"]++; } ?> <html> <head> <title>Contar páginas vistas por un usuario en toda su sesión</title> </head> <body> <? echo "Desde que entraste has visto " . $_SESSION["visitas"] . " páginas"; ?> <br> <br> <a href="otracuenta.php">Ver otra página</a> </body> </html>
|
Modifica el programa anterior para almacenar el momento en el cual se produjo cada visita <?php // Iniciamos la sesión o recuperamos la anterior sesión existente session_start(); // En cada visita añadimos un valor al array "visitas" $_SESSION['visitas'][] = mktime(); ?>
|
<?php // Si el usuario aún no se ha autentificado, pedimos las credenciales if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="Contenido restringido"'); header("HTTP/1.0 401 Unauthorized"); exit; } // Vamos a guardar el usuario en una variable de sesión // si no existe, aún no se ha autentificado session_start(); if (!isset($_SESSION['usuario'])) { // Aquí podríamos conectar a una vbase de satos para ver recuperar datos de la base de datos //y verificar si hay o no concordancia. $autentificado=false; if ($_SERVER['PHP_AUTH_USER']=="manolo" AND $_SERVER['PHP_AUTH_PW']=="manolo") $autentificado=true; // Si no existe, se vuelven a pedir las credenciales if ($autentificado == false) { header('WWW-Authenticate: Basic realm="Contenido restringido"'); header("HTTP/1.0 401 Unauthorized"); exit; } else $_SESSION['usuario'] = $_SERVER['PHP_AUTH_USER']; } } // Si ya está autentificado else { // Comprobamos si se ha enviado el formulario de limpiar el registro if (isset($_POST['limpiar'])) unset($_SESSION['visita']); else $_SESSION['visita'][] = time(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Ejemplo Tema 4: Cookies en autentificación HTTP</title><link href="dwes.css" rel="stylesheet" type="text/css"> </head> <body> <?php if ($error == null) { echo "Nombre de usuario: " . $_SERVER['PHP_AUTH_USER'] . "<br />"; echo "Hash de la contraseña: " . md5($_SERVER['PHP_AUTH_PW']) . "<br />"; if (count($_SESSION['visita']) == 0) echo "Bienvenido. Esta es su primera visita."; else { date_default_timezone_set('Europe/Madrid'); foreach ($_SESSION['visita'] as $v) echo date("d/m/y \a \l\a\s H:i", $v) . "<br />"; ?> <form id='vaciar' action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'> <input type='submit' name='limpiar' value='Limpiar registro'/> </form> <?php } } else echo "Se ha producido el error $error.<br />"; ?> </body> </html>
|
Ejercicios:
|
Cookies
Almacenar el momento de las visitas a una página
if($resultado->num_rows == 0) { //...... else { if (isset($_COOKIE['ultimo_login'])) { $ultimo_login = $_COOKIE['ultimo_login']; } setcookie("ultimo_login", time(), time()+3600); } //..... y una vez dentro de la página if (isset($ultimo_login)) echo "Ultimo login: " . date("d/m/y \a \l\a\s H:i", $ultimo_login); else echo "Bienvenido. Esta es su primera visita."
|
Coockies de secciones
Css para el ejercicio |
---|
#secciones{ border: 0.25em solid; align : center; left: 10%; background-color: #eee; font-size: 1.1em; } |
}} -->
http://www.mclibre.org/consultar/php/ejercicios/cookies/cookies.html
|