En PHP, los datos de la sesión generalmente se almacenan en un archivo. Lo único almacenado en la cookie es un identificador de sesión. Cuando las sesiones están habilitadas y se encuentra una cookie de sesión válida, PHP carga los datos de la sesión de los usuarios desde el archivo a un superglobal llamado SESIÓN, curiosamente.
Las sesiones básicas se inician utilizando session_start();
llamadas antes de que se envíe texto al navegador. a continuación, los elementos se agregan o se eliminan del objeto de sesión utilizando la indexación de matriz simple, por ejemplo.
$_SESSION['favcolour'] = 'blue';
después ...
$favcolour = $_SESSION['favcolour'];
galletas básica sólo sesiones (sin almacenamiento local) se pueden crear con una llamada a
set_cookie('favcolour','blue'[,other params]);
antes de cualquier texto se envía al navegador, luego recuperado de la cookie superglobal
$favcolour = $_COOKIE['favcolour'];
no necesita llamar al session_start()
si solo está haciendo sesiones de cookies.
los opcionales [params], otros son más avanzados y se pueden leer aquí http://www.php.net/manual/en/function.setcookie.php
Las sesiones pueden convertirse en una discusión muy compleja, sugeriría haciendo un trabajo ligero en ellos y luego ampliar su conocimiento.
DC
todo lo que siempre quiso saber acerca de las sesiones de PHP
http://www.php.net/manual/en/book.session.php
DC
Para volver a utilizar el código de manejo de sesiones de PHP, necesitará agregar un controlador de escritura usando session_set_save_handler
y luego no hacer exactamente nada en ese controlador. Esto se debe a que se llama después de que se cierra la salida del navegador, por lo tanto, no se puede enviar nada al navegador.
Antes de escribir datos sin encabezado en el navegador, use las funciones set_cookie y almacene los contenidos de la matriz $ _SESSION (después de serializar y encriptar) en una cookie. cuando comienzan las aplicaciones, puede leer la cookie desserializarla y ponerla en la matriz $ _SESSION.
Eso es una pista rápida de qué hacer ya que nunca lo he hecho, prefiero escribir mi propio código de cookie. Puede haber algunos gotcha pero no es difícil, algunas pruebas deberían encontrar cualquier gotcha.
DC
No estoy seguro de que lo siga. ¿Quiere decir almacenar datos de sesión en las cookies? ¿Es eso una buena idea? –
Tenga en cuenta que las cookies solo pueden almacenar un máximo de '4KB' de datos. Por lo general, esta es la razón por la que no ve el almacenamiento de sesión basado en cookies.Tenga también en cuenta que una cantidad de usuarios tienen cookies desactivadas por completo o configuradas para acceso restrictivo con la política de seguridad de sus navegadores. –
@cballou: las sesiones antiguas normales generalmente también usan cookies. Sin embargo, solo almacenan el SESSID, y el resto de los datos se almacenan en el servidor. Aunque creo que PHP tratará de rellenar el SESSID en el parámetro 'GET' si las cookies están deshabilitadas. – mpen