Diferencia entre revisiones de «Usuario:ManuelRomero/php/cookies»
De WikiEducator
< Usuario:ManuelRomero | php
| Línea 152: | Línea 152: | ||
}} | }} | ||
|} | |} | ||
| + | <!-- | ||
| + | <!DOCTYPE html> | ||
| + | <?php | ||
| + | // Si el usuario aún no se ha autentificado, pedimos las credenciales | ||
| + | //Observa que escribimos esto antes de escribier ninguna salida | ||
| + | //Esto es importante si se usa la función header | ||
| + | if (!isset($_SERVER['PHP_AUTH_USER'])) { | ||
| + | header('WWW-Authenticate: Basic realm="Contenido restringido"'); | ||
| + | header("HTTP/1.0 401 Unauthorized"); | ||
| + | exit; | ||
| + | } | ||
| + | // Si ya ha | ||
| + | //enviado las credenciales, las comprobamos con la base de datos | ||
| + | else { | ||
| + | // Conectamos a la base de datos | ||
| + | |||
| + | $conexion = new mysqli("localhost", "root", "root", "dwes"); | ||
| + | $error = $conexion->connect_errno; | ||
| + | // Si se estableció la conexión | ||
| + | if ($error == null) { | ||
| + | //Realizamos una consulta preparada | ||
| + | $consulta = $conexion->stmt_init(); | ||
| + | // Ejecutamos la consulta para comprobar si existe | ||
| + | // esa combinación de usuario y contraseñ | ||
| + | $sql = <<<SQL | ||
| + | SELECT usuario FROM usuarios | ||
| + | WHERE usuario = ? AND | ||
| + | contrasena = ? | ||
| + | SQL; | ||
| + | |||
| + | $usuario = $_SERVER['PHP_AUTH_USER']; | ||
| + | $pass = md5($_SERVER['PHP_AUTH_PW']); | ||
| + | $consulta->prepare($sql); | ||
| + | $consulta->bind_param("ss", $usuario, $pass); | ||
| + | $consulta->execute(); | ||
| + | $consulta->store_result(); | ||
| + | if ($consulta->num_rows == 0) { | ||
| + | |||
| + | header('WWW-Authenticate: Basic realm="Contenido restringido"'); | ||
| + | header("HTTP/1.0 401 Unauthorized"); | ||
| + | //Esto solo se visualizará si damos a cancelar del formulario de autentificación | ||
| + | $consulta->close(); | ||
| + | $conexion->close(); | ||
| + | echo "<h1> Usuario y password no autorizado reintentelo </h1>"; | ||
| + | exit; | ||
| + | } else { //Situación en la que el usuario se ha conectado ok | ||
| + | if (isset($_COOKIE["usuario"])){ | ||
| + | $acceso=$_COOKIE["usuario"]; | ||
| + | } | ||
| + | $acceso[]=time(); | ||
| + | $indice =count($acceso)-1; | ||
| + | //$indice = count($acceso)-1; | ||
| + | |||
| + | setcookie("usuario[$indice]",time(),time()+12*30*24*3600); | ||
| + | print_r($_COOKIE); | ||
| + | |||
| + | } | ||
| + | $consulta->close(); | ||
| + | $conexion->close(); | ||
| + | }//End error =null | ||
| + | }//End else de if !isset ..... | ||
| + | ?> | ||
| + | <html> | ||
| + | <head> | ||
| + | <meta http-equiv="content-type" content="text/html; charset=UTF-8"> | ||
| + | <title>Ejemplo Tema 4: Utilización de MySQL para autentificación HTTP</title> | ||
| + | <link href="dwes.css" rel="stylesheet" type="text/css"> | ||
| + | </head> | ||
| + | <body> | ||
| + | <?php | ||
| + | echo "Nombre de usuario: " . $_SERVER['PHP_AUTH_USER'] . "<br/>"; | ||
| + | echo "Hash de la contraseña: " . md5($_SERVER['PHP_AUTH_PW']) . "<br/>"; | ||
| + | |||
| + | if (count($acceso)!=0){ | ||
| + | echo "<h2>Accesos realizados</h2>"; | ||
| + | |||
| + | for ($i=0;$i<=$indice;$i++){ | ||
| + | echo "Acceso número $i ".(date ("d/m/y \a \l\a\s H:i",$acceso[$i]))."<br/>"; | ||
| + | } | ||
| + | |||
| + | }else | ||
| + | echo "Wellcome to your first access"; | ||
| + | |||
| + | ?> | ||
| + | </body> | ||
| + | </html> | ||
| + | --> | ||
Revisión de 10:40 19 nov 2014
Qué es una Cookie
Crear una coockie
http://es.php.net/manual/es/function.setcookie.php
setcookie("usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);
Recuperar la cookie
$usuario = $_COOKIE['usuario']; Borrar una cookie
<?php // Ponemos un tiempo de expiración negativo setcookie("user", "", time()-3600); ?>
}}
|

