Cookies Y Sesiones
Cookies y Sesiones
Las cookies es una información sobre el usuario que se almacena en el navegador del mismo.
Una diferencia entre cookie y sesión es que las cookies se almacenan en el ordenador del usuario y las sesiones se guardan en el servidor.
Cookie
Permite que los sitios web almacenen información del visitante
- Recordar idioma
- Anuncios personalizados
Definir una cookie
setcookie("noexpira",1);
setcookie("micookie",2, time() + 20);
// tiempo de expiración, despues de ese tiempo la cookie desaparecera
Comprobar si existe cookie
A través de la variable global _COOKIE
if(!isset($_COOKIE["micookie"]) && !isset($_COOKIE["noexpira"]) ){
setcookie("noexpira",1);
setcookie("micookie",2, time() + 20);
}else{
echo "micookie ya esta definida \n";
echo "<br>";
}
var_dump($_COOKIE);
Eliminar una cookie
Para eliminar una cookie en PHP, puedes utilizar la función setcookie() y establecer su tiempo de expiración en el pasado. Al establecer la fecha de expiración en un momento anterior al actual, el navegador eliminará la cookie.
// Establecer la fecha de expiración en el pasado (por ejemplo, hace una hora)
setcookie("miCookie", "", time() - 3600, "/");
// También es buena práctica eliminar la cookie en la variable $_COOKIE
unset($_COOKIE['miCookie']);
Session
- Caracteres aleatorios que forman una identificación única para cada usuario.
- Paginas distintas pueden acceder a variables comunes. (Puedo navegar entre varias páginas y no tengo que logearme, solo la primera vez)
- Se almacenan en el servidor
Antes de iniciar una sesión
Se puede definir un id y el nombre de la sesion
session_id("22"); //Establece el id de la sesion
session_id(); //Asi se obtendria y si no lo hemos definido nos da uno por defecto incremental
// Por defecto las sesiones tienen el nombre definido en php.ini
session_name("miSesion"); //Cambiar el nombre de la sesion
//Importante, tanto si definimos el id, como si lo obtenemos, solo lo podemos hacer una vez por metodo, antes de iniciar la sesion
Iniciar la sesión
Para poder interactuar con el array global $_SESSION primero hay que hacer un session_start
session_start();
echo session_id(); // Podriamos ver ahora si, el valor definido anteriormente
echo session_name(); // Podriamos ver ahora si, el valor definido anteriormente
// Los datos que queremos guardar lo hacemos en el array asociativo _SESSION
$_SESSION["user"] = "user";
$_SESSION["password"] = "password";
var_dump($_SESSION);
Cerrar la sesion
session_unset(); // quita las variables definidas dentro de session
session_destroy(); // borra la sesion
Sesiones entre varias páginas
Para compartir la información entre diferentes páginas hay que hacer un session_start() en cada página para mantener la sesión activa.