¿Qué incluye principalmente la tecnología de sesión PHP?
Este artículo explica principalmente el mecanismo de conversación PHP, cookie y sesión.
Introducción a las cookies
Las cookies son datos almacenados en el navegador del cliente. Utilizamos cookies para rastrear y almacenar datos del usuario. Generalmente, las cookies se devuelven del servidor al cliente a través de encabezados HTTP. La mayoría de los programas web admiten operaciones de cookies. Debido a que las cookies existen en el encabezado HTTP, deben configurarse antes de que se genere otra información, similar a las restricciones de uso de la función del encabezado.
PHP utiliza la función setcookie para configurar cookies. Cualquier cookie enviada desde el navegador se almacenará automáticamente en la variable global $_COOKIE de PHP, por lo que podemos usar $_COOKIE['key '] para leer una. valor de la galleta.
Las cookies en PHP se usan ampliamente y a menudo se usan para almacenar información de inicio de sesión de los usuarios, carritos de compras, etc. Cuando se usa una sesión, las cookies generalmente se usan para almacenar ID de sesión para identificar a los usuarios. Las cookies tienen una validez. período, cuando expire el período de validez, la cookie se eliminará automáticamente del cliente. Al mismo tiempo, para el control de seguridad, las cookies también pueden establecer el dominio y la ruta. Los explicaremos en detalle en capítulos posteriores.
Por motivos de seguridad del sitio web, este sitio no proporciona la función de visualización de variables de cookies por el momento. Pruébelo usted mismo localmente;
Configuración de cookies
<. p>La mejor manera de configurar cookies en PHP. El método comúnmente utilizado es usar la función setcookie. Setcookie tiene 7 parámetros opcionales. Los primeros 5 que usamos comúnmente son:se puede acceder al nombre (nombre de la cookie). a través de $_COOKIE['name']
p>
valor (valor de la cookie)
expire (tiempo de caducidad) Formato de marca de tiempo Unix, el valor predeterminado es 0, lo que significa que caducan cuando se cierra el navegador
ruta (ruta válida) Si la ruta se establece en '/', todo el sitio web es válido
dominio (dominio válido) por defecto es todo el dominio nombre Si se establece 'www.imooc.com', solo es válido en el subdominio www
$value = 'test';
setcookie("TestCookie", $ value);
setcookie("TestCookie", $value, time() 3600 //Válido por una hora
setcookie("TestCookie", $value, time()); 3600, "/path/", "imooc.com"); //Establecer la ruta y el dominio en PHP También hay una función para configurar Cookie, setrawcookie es básicamente lo mismo que setcookie. no se codificará automáticamente, por lo que la codificación debe realizarse manualmente cuando sea necesario.
setrawcookie('cookie_name', rawurlencode($value), time() 60*60*24*365); debido a que la cookie se configura a través del encabezado HTTP, también puede usar el método del encabezado configurado directamente. .
Header("Set-Cookie: cookie_name=value"); Eliminación de cookies y tiempo de vencimiento
A lo largo de los capítulos anteriores, aprendimos sobre la función de configurar cookies, pero descubrimos que No existe ninguna función para eliminar cookies en PHP. La eliminación de cookies en PHP también se logra mediante el uso de la función setcookie.
setcookie('test', '', time()-1); puede ver que si el tiempo de vencimiento de la cookie se establece antes de la hora actual, la cookie caducará automáticamente, lo que significa eliminarla. el propósito de la cookie. La razón de este diseño es que las cookies se pasan a través de encabezados HTTP. El cliente configura las cookies según el segmento Set-Cookie devuelto por el servidor. Si eliminar cookies requiere usar una nueva Del-Cookie, el encabezado HTTP se volverá complicado. De hecho, la configuración, actualización y eliminación de cookies se puede lograr de forma sencilla y clara a través de Set-Cookie.
Después de comprender el principio, también podemos eliminar las cookies directamente a través del encabezado.
header("Set-Cookie: test=1393832059; expires=".gmdate('D, d M Y H: i: s \G\M\T', time()-1)); gmdate se utiliza para generar la hora media de Greenwich para eliminar el efecto de la diferencia horaria.
Similitudes y diferencias entre sesión y cookie
La cookie almacena datos en el cliente y establece una conexión entre el usuario y el servidor. Normalmente puede solucionar muchos problemas, pero las cookies aún tienen algunos. Limitaciones:
Las cookies no son muy seguras y pueden ser robadas fácilmente, lo que lleva a la suplantación de cookies.
El valor de una sola cookie solo puede almacenar un máximo de 4k
Cada solicitud requiere transmisión de red, ocupando ancho de banda
la sesión almacena los datos de la sesión del usuario en el lado del servidor, sin límite de tamaño, y utiliza un session_id para identificar al usuario. De forma predeterminada, la identificación de la sesión PHP es. Se guarda a través de una cookie, por lo que no hay límite en el tamaño. Hasta cierto punto, seesion depende de las cookies. Pero esto no es absoluto. La identificación de la sesión también se puede implementar a través de parámetros, siempre que la identificación de la sesión se pueda pasar al servidor para su identificación, se puede utilizar.
Usar sesión
Usar sesión en PHP es muy simple Primero ejecute el método session_start para abrir la sesión y luego lea y escriba la sesión a través de la variable global $_SESSION.
session_start();
$_SESSION['test'] = time();
var_dump($_SESSION); la sesión se establecerá automáticamente El valor está codificado y decodificado, por lo que la sesión puede admitir cualquier tipo de datos, incluidos datos y objetos.
session_start();
$_SESSION['ary'] = array('nombre' =gt; 'trabajos');
$_SESSION[' obj'] = new stdClass();
var_dump($_SESSION); De forma predeterminada, la sesión se almacena en forma de archivo en el servidor, por lo que cuando una página abre la sesión, esta se almacenará exclusivamente. ocupe el archivo de sesión, esto hará que otros accesos simultáneos del usuario actual no puedan ejecutarse y esperar.
Eliminar y destruir sesión
Para eliminar un valor de sesión, puede utilizar la función unset de PHP. Después de eliminarlo, se eliminará de la variable global $_SESSION y no se podrá acceder a él.
session_start();
$_SESSION['nombre'] = 'trabajos';
unset($_SESSION['nombre']); p>
p>
echo $_SESSION['name']; // Indica que el nombre no existe. Si desea eliminar todas las sesiones, puede usar la función session_destroy para destruir la sesión actual. borre todos los datos, pero session_id todavía existe.
session_start();
$_SESSION['nombre'] = 'trabajos';
$_SESSION['tiempo'] = tiempo();
session_destroy(); Vale la pena señalar que session_destroy no destruirá inmediatamente el valor en la variable global $_SESSION. Solo cuando se acceda a ella la próxima vez, $_SESSION estará vacío, por lo que si necesita destruirlo. inmediatamente, $ _SESSION, puede utilizar la función de desarmado.
session_start();
$_SESSION['nombre'] = 'trabajos';
$_SESSION['tiempo'] = tiempo();
unset($_SESSION);
session_destroy();
var_dump($_SESSION); //Está vacío en este momento. La cookie al mismo tiempo, session_id, que generalmente se puede usar cuando el usuario cierra sesión, también debe llamar explícitamente al método setcookie para eliminar el valor de la cookie de session_id.
Usar sesión para almacenar información de inicio de sesión del usuario
La sesión se puede usar para almacenar muchos tipos de datos, por lo que tiene muchos usos. A menudo se usa para almacenar información de inicio de sesión del usuario y el carrito de compras. datos, o algunos datos temporales para uso temporal, etc.
Después de que el usuario inicia sesión correctamente, la información del usuario generalmente se puede almacenar en la sesión. Generalmente, algunos campos importantes se almacenarán por separado y luego toda la información del usuario se almacenará de forma independiente.
$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo En términos generales, la información de inicio de sesión se puede almacenar en; session, también se puede almacenar en cookies. La diferencia entre ellas es que la sesión puede acceder fácilmente a múltiples tipos de datos, mientras que las cookies solo admiten tipos de cadenas. Al mismo tiempo, para algunos datos con mayor seguridad, las cookies deben formatearse. almacenamiento cifrado, mientras que la sesión es más segura cuando se almacena en el lado del servidor.