¿Qué es una cookie?
Una cookie es un archivo pequeño con un tamaño máximo de 4 KB que el servidor web almacena en la computadora cliente.
Una vez que se establece una cookie, cada solicitud volverá a una página que sigue el nombre y el valor de las cookies.
Una cookie solo se puede leer desde el dominio desde el que se emitió. Por ejemplo, un conjunto de cookies que utilizan el dominio www.guru99.com no se puede leer desde el dominio carrera.guru99.com.
La mayoría de los sitios web en Internet muestran elementos de otras áreas, como la publicidad. Los dominios que sirven estos elementos también pueden configurar sus propias cookies. Se denominan cookies de terceros.
Solo las cookies creadas por el usuario pueden verlos. Otros usuarios no pueden ver su valor.
La mayoría de los navegadores web tienen opciones para deshabilitar las cookies, las cookies de terceros o ambas.
Si este es el caso, PHP responde pasando el token de la cookie en la URL.
El siguiente diagrama muestra cómo funcionan las cookies.
Seo
1) Un usuario solicita una página que almacena cookies
2) El servidor coloca la cookie en la computadora del usuario
3) Otras solicitudes de página del usuario devolverán el nombre y el valor de las cookies.
En este tutorial, aprenderá:
¿Por qué y cuándo se pueden utilizar las cookies?
Http es un protocolo sin estado; Las cookies nos permiten rastrear el estado de la aplicación utilizando pequeños archivos almacenados en la computadora del usuario.
La ruta donde se almacenan las cookies depende del navegador.
Internet Explorer generalmente los almacena en la carpeta Archivos temporales de Internet.
Personalizar la experiencia del usuario: esto se logra al permitir que los usuarios elijan sus preferencias.
La página solicitada se personaliza en función de las preferencias establecidas en las cookies.
- Seguimiento de las páginas que ha visitado un usuario
Creando Cookies
Veamos ahora la sintaxis básica utilizada para crear una cookie.
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
AQUÍ,
- Php «setcookie» es la función PHP utilizada para crear la cookie.
- El cookie_name «es el nombre de la cookie que el servidor utilizará cuando recupere su valor de la variable de edición $ _COOKIE. Es obligatorio.
- Cookie_value es el valor de la cookie y su obligatorio
- «[expiry_time]Es opcional; se puede utilizar para establecer el tiempo de caducidad de la cookie en 1 hora. El tiempo se establece usando las funciones PHP time () más o menos varios segundos mayores que 0, es decir, time () + 3600 durante 1 hora.
- «[cookie_path]Es opcional; se puede utilizar para establecer la ruta de las cookies en el servidor. El prefijo «/» significa que la cookie se colocará en todo el dominio. Los subdirectorios limitan el acceso de cookies al subdominio.
- «[domain]Opcionalmente, se puede utilizar para definir la jerarquía de acceso a las cookies, es decir www.dominiocookie.Com significa dominio completo y www.sub.cookiedomain.com limita el acceso a las cookies www.sub.cookiedomain.com y sus subdivisiones. Tenga en cuenta que puede tener un subdominio siempre que el total de caracteres no supere los 253 caracteres.
- «[secure]Es opcional, el valor predeterminado es falso. Se utiliza para determinar si una cookie se envía a través de https si se pretende que sea verdadera o http si es falsa.
- «[Httponly]Es opcional. Si es cierto, solo se requieren lenguajes de scripting del lado del cliente .i JavaScript no se puede acceder a ellos.
Nota: la función de conjunto de cookies php debe ejecutarse antes de abrir la etiqueta HTML.
Veamos ahora un ejemplo que utiliza cookies.
Crearemos un programa básico que nos permitirá almacenar el nombre de usuario en una cookie que caducará a los diez segundos.
El siguiente código muestra la implementación del ejemplo anterior «cookies.php».
<?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>
Producción:
the cookie has been set for 60 seconds
Recuperando el valor de las cookies
Cree otro archivo llamado «cookies_read.php» con el siguiente código.
<?php print_r($_COOKIE); //output the contents of the cookie array variable ?>
Producción:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Nota: $ _COOKIE es una variable superglobal integrada en PHP.
Contiene los nombres y valores de todas las cookies configuradas.
El número de valores que
La matriz $ _COOKIE depende de la cantidad de memoria configurada en php.ini.
El valor predeterminado es 1 GB.
Probando nuestra aplicación.
Suponemos que ha guardado sus archivos PHP en una carpeta phptus.
- Paso 1: abra su navegador web e ingrese la URL http: //localhost/phptuts/cookies_read.php
Nota: solo se mostró una fila vacía
- Paso 2: navegador a la URL http: //localhost/phptuts/cookies.php
- Paso 3: vuelva a la primera pestaña y luego haga clic en el botón Actualizar
Espere un minuto y luego vuelva a hacer clic en el botón Actualizar. Que resultados obtuviste?
Eliminar las cookies
- Si desea eliminar una cookie antes de su fecha de vencimiento, ya configuró la fecha de vencimiento en el pasado.
- Cree un nuevo cookie_destroy.php archivado con el siguiente código
<?php setcookie("user_name", "Guru99", time() - 360,'/'); ?>
- Repita los pasos 1 a 3 de la sección anterior sobre la recuperación de valores de cookies.
- Abre la URL http: //localhost/phptuts/cookie_destroy.php
- Cambiar a URL http: //localhost/phptuts/cookies_read.php ¿Qué resultados muestra?
¿Qué es una sesión?
- Una sesión es una variable global almacenada en el servidor.
- A cada sesión utilizada para recuperar valores almacenados se le asigna una identificación única.
- Una vez que se crea una sesión, una cookie que contiene la identificación de sesión única se almacena en la computadora del usuario y se devuelve con cada solicitud al servidor. Si el navegador del cliente no admite cookies, la identificación de sesión php única se muestra en la URL
- Las sesiones tienen la capacidad de almacenar datos relativamente grandes en comparación con las cookies.
- Los valores de la sesión se eliminan automáticamente cuando se cierra el navegador. Si desea almacenar permanentemente los valores, debe almacenarlos en la base de datos.
- Al igual que la variable de edición $ _COOKIE, las variables de sesión se almacenan en la variable de edición $ _SESSION. Al igual que las cookies, la sesión debe iniciarse antes que las etiquetas HTML.
¿Por qué y cuándo se pueden utilizar las sesiones?
- Desea almacenar información importante como la identificación del usuario de una manera más segura en el servidor donde los usuarios malintencionados no puedan entenderlos.
- Quiere pasar valores de una página a otra.
- Necesita una alternativa a las cookies en los navegadores que no admiten cookies.
- Desea almacenar variables globales de una manera eficiente y más segura en comparación con reenviarlas en la URL.
- Está desarrollando una aplicación como un carrito de compras que necesita almacenar temporalmente información con una capacidad superior a 4 KB.
Crear una sesión
Para crear una sesión, primero debe llamar a la función PHP session_start y luego almacenar sus valores en la variable de edición $ _SESSION.
Creo que queremos saber la cantidad de veces que se ha cargado una página, podemos usar una sesión para hacerlo.
El siguiente código muestra cómo crear y recuperar valores de sesiones
<?php session_start(); //start the PHP_session function if(isset($_SESSION['page_count'])) { $_SESSION['page_count'] += 1; } else { $_SESSION['page_count'] = 1; } echo 'You are visitor number ' . $_SESSION['page_count']; ?>
Producción:
You are visitor number 1
Eliminar variables de sesión
La función session_destroy () se usa para eliminar todas las variables de sesión de Php.
Si solo desea eliminar un elemento de sesión, use la función unset ().
El siguiente código muestra cómo utilizar ambos métodos.
<?php session_destroy(); //destroy entire session ?>
<?php unset($_SESSION['product']); //destroy product session item ?>
Session_destroy elimina todos los datos de la sesión, incluidas las cookies relacionadas con la sesión.
Unset solo libera las variables de sesión individuales.
Otros datos aún están intactos.
Resumen
- Las cookies son pequeños archivos que se guardan en la computadora de un usuario.
- Las cookies solo se pueden leer del dominio emisor
- Las cookies pueden caducar, si no se configuran, la cookie caducará cuando se cierre el navegador
- Las sesiones son como variables globales almacenadas en el servidor.
- A cada sesión se le da una ID única que se utiliza para rastrear las variables de un usuario.
- Tanto las cookies como las sesiones deben iniciarse antes de que se puedan enviar etiquetas HTML al navegador.