Diferencia entre revisiones de «Usuario:ManuelRomero/php/cookies»
De WikiEducator
< Usuario:ManuelRomero | php
Línea 141: | Línea 141: | ||
*http://www.mclibre.org/consultar/php/lecciones/php_cookies.html | *http://www.mclibre.org/consultar/php/lecciones/php_cookies.html | ||
Normativa: Directiva 2009/136/CE}} | Normativa: Directiva 2009/136/CE}} | ||
+ | ===Coockies con array=== | ||
+ | *En este caso la cookie en lugar de contener un solo valor va a contener un array asociativo | ||
+ | *A la hora de leer la cookie se hace igual que hasta ahora | ||
+ | <source lang=php> | ||
+ | </php> | ||
− | {{Lectura|Title=Administrar cookies en diferentes navegadores | + | {{Lectura|Title=Administrar cookies en diferentes navegadores| |
*'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s | *'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s | ||
*'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647 | *'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647 |
Revisión de 18:24 21 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); ?>
}}
Coockies con array
</php> {{Lectura|Title=Administrar cookies en diferentes navegadores| *'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s *'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647 *'''''Internet Explorer''''': http://windows.microsoft.com/es-es/windows7/how-to-manage-cookies-in-internet-explorer-9 *'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html *'''''Safari''''': http://support.apple.com/kb/ph5042 }} |} <!-- <!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> --> |