Cookies
PHP soporta cookies
HTTP de forma transparente. Las Cookies son un mecanismo por
el cuál se almacenan datos en el browser remoto y así rastrear o identificar a
usuarios que vuelven. Se pueden configurar Cookies usando la función setcookie()
o setrawcookie().
Las Cookies son parte del header HTTP, así es que setcookie()
será llamada antes que cualquier otra salida sea enviada al browser. Esta es la
misma limitación que tiene la función header().
Algunos envíos de
cookies desde el cliente serán incluidos automáticamente en el Array
auto-global $_COOKIE
si variables_order
contiene "C". Si se desea asignar múltiples valores a una cookie,
solo se deben agregar [] al nombre de la cookie.
bool setcookie
( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
Ejemplo:
$fecha_exp=time()+10;
$path=dirname($_SERVER['REQUEST_URI']).'/';
setcookie($nombre,$valor,$fecha_exp,$path,'',0);
Verificar en el
navegador si la cookie fue creada satisfactoriamente.
Ejercicio 2:
Crear un contador
de accesos utilizando cookies. De forma que cada vez que el usuario visite la
pagina muestre el número de veces que ha entrado.
Sessiones
El soporte para sesiones
en PHP consiste en una forma de preservar cierta información a través de
accesos subsiguientes. Esto habilita la construcción de aplicaciones más
personalizadas e incrementar el atractivo de su sitio web.
Un visitante que accede
a su sitio web se el asigna un id único, también llamado id de sesión. Éste es
almacenado en una cookie en el lado del cliente o se propaga en la URL.
El soporte para sesiones
le permite registrar un número arbitrario de variables para preservarlas a
través de las peticiones. Cuando un visitante accede a su sitio, PHP comprobará
automáticamente (si session.auto_start
está establecido a 1) o sobre su petición (explícitamete a través de session_start()
o implícitamente a través de session_register())
si un id de sesión específico ha sido enviado con la petición. Si éste es el
caso, se recrea el entorno anteriormente guardado.
Directivas a
configurar para el manejo de sesiones:
session.name string : especifica el nombre de la sesión que
se usa como nombre de cookie. Sólo debería contener caracteres alfanuméricos.
Por defecto es PHPSESSID.
session.gc_probability integer: se
usa junto con session.gc_divisor para manejar la probabilidad de que la
rutina de gc (garbage collection, recolección de basura) está iniciada. Por
defecto es 1.
session.gc_divisor integer: session.gc_divisor junto con session.gc_probability define la probabilidad de que
el proceso de gc (garbage collection, recolección de basura) esté iniciado en
cada inicialización de sesión. La probabilidad se calcula usando
gc_probability/gc_divisor, p.ej. 1/100 significa que hay un 1% de probabilidad
de que el proceso de GC se inicie en cada petición. session.gc_divisor
por defecto es 100.
session.gc_maxlifetime integer: session.gc_maxlifetime especifica el número de segudos transcurridos después de que la
información sea vista como 'basura' y potencialmente limpiada. La recolección
de basura puede suceder durante el inicio de sesiones (dependiendo de session.gc_probability
y session.gc_divisor).
session.use_cookies boolean: especifica
si el módulo usará cookies para almacenar el id de sesión en la parte del
cliente. Por defecto es 1 (habilitado).
session.use_only_cookies boolean: especifica
si el módulo sólo usará cookies para almacenar el id de sesión en la
parte del cliente. Habilitar este ajuste previene ataques que impican pasar el
id de sesión en la URL. Este
ajuste fue añadido en PHP 4.3.0. Por defecto es 1 (habilitado) desde PHP
5.3.0.
Pasos para crear una session
simple utilizando cookies y archivos para almacenar e identificar una session:
1.
Inicializar directivas en tiempo de ejecución si es necesario:
ini_set("session.use_cookies","1");
ini_set("session.gc_probability","100");
ini_set("session.gc_divisor","100");
ini_set("session.gc_maxlifetime","10");
2. Definir la estructura que
tendrá nuestra session (nombre, tiempo de vida de la cookie, id):
//Parametros de la
cookie de session o se setean asi:
ini_set("session.cookie_lifetime","60");
$tiempo_vida=600;
session_set_cookie_params($tiempo_vida);
//Nombre de la
session
$session_nombre='daniel';
//Asignacion del
nombre de session
session_name($session_nombre);
//Asigna un ID
definido por el usuario o por el paso de una variable por URL. Si esto no se
utiliza PHP generara un ID automáticamente.
session_id($_GET[$id]);
3. Iniciar la session.:
//Inicio de session
session_start();
4. Almacenar variables en la
session:
$_SESSION['login']='darm';
$_SESSION['pass']='123456';
No hay comentarios:
Publicar un comentario