Publicado el Deja un comentario

Sesiones en PHP

Una sesión es una forma de almacenar información (en variables) que se utilizará en varias páginas

A diferencia de una cookie, la información no se almacena en el equipo del usuario

¿Qué es una sesión PHP?



Cuando trabaja con una aplicación, la abre, hace algunos cambios y luego la cierra. Esto es muy parecido a una sesión. La computadora sabe quién eres. Sabe cuándo inicia la aplicación y cuándo finaliza. Pero en Internet hay un problema: el servidor web no sabe quién es usted ni qué hace, porque la dirección HTTP no mantiene el estado.

Las variables de sesión resuelven este problema almacenando la información del usuario que se utilizará en varias páginas (por ejemplo, nombre de usuario, color favorito, etc.). De forma predeterminada, las variables de sesión duran hasta que el usuario cierra el navegador.

Entonces; Las variables de sesión contienen información sobre un solo usuario y están disponibles para todas las páginas en una aplicación.

Iniciar una sesión de PHP


Se inicia una sesión con la función session_start ().

Las variables de sesión se establecen con la variable global de PHP: $ _SESSION.

Ahora, creemos una nueva página llamada «demo_session1.php». En esta página, iniciamos una nueva sesión de PHP y establecemos algunas variables de sesión:

Publicado el Deja un comentario

Cookies en WordPress y PHP_Session: Todo lo que necesitas saber

Las cookies fueron inventadas por primera vez en 1994 por un programador llamado Lou Montulli. sino la web sería un lugar muy diferente.

Ya sea que inicies sesión en el back-end de su sitio de WordPress o cierres una ventana emergente molesta, se usan e interactúan ookies todos los días (incluso si no te das cuenta).

A estas alturas, probablemente hayas adivinado que cuando nos referimos a las cookies, nos referimos a las cookies que se utilizan para almacenar información importante de los visitantes en un sitio web, no a las deliciosas chispas de chocolate. 🍪

Hoy vamos a sumergirnos en el tema, a veces confuso, de las cookies y las sesiones de PHP. Específicamente, todo lo que necesita saber sobre cómo los usa WordPress, junto con algunos problemas comunes que debe conocer (especialmente como desarrollador) cuando se trata de alojar su sitio web, código personalizado o usar un complemento de terceros. En nuestra opinión, este tema no se discute lo suficiente.

¿Qué son las cookies?


Una cookie (también conocida como cookie web, cookie de seguimiento, cookie HTTP, cookie del navegador) es una pequeña parte de los datos almacenados por el navegador de un usuario (Chrome, Firefox, etc.) cuando visita un sitio web. Contiene información sobre la actividad de navegación y normalmente se utiliza para personalizar la experiencia del usuario o con fines de autenticación y verificación. Las cookies de sesión y las cookies persistentes son tipos comunes de cookies.

Tipos de cookies

Hay dos tipos diferentes de cookies que se establecen comúnmente: cookies de sesión y cookies persistentes.


Cookies de sesión


Las cookies de sesión, también conocidas como cookies transitorias, son temporales. No tienen una fecha de vencimiento adjunta y solo almacenan información sobre lo que hace el usuario durante una sola sesión. Una sesión es simplemente un valor único / generado aleatoriamente que se asigna cuando alguien visita un sitio web. Las cookies de sesión se almacenan temporalmente en la memoria y se eliminan automáticamente cuando el navegador se cierra o la sesión finaliza.

Cookies persistentes


Las cookies persistentes, como habrás adivinado, son aquellas que contienen una fecha de vencimiento. Estos duran mucho más y se almacenan en el disco hasta que caducan o el usuario los borra manualmente. A veces, también se las denomina «cookies de seguimiento», ya que son los tipos de cookies que utilizan Google Analytics, AdRoll, Stripe, etc.


Cómo usa WordPress Core las cookies


Cuando nos referimos al núcleo de WordPress, simplemente nos referimos a los archivos que componen el proyecto de código abierto, antes de instalar complementos o temas de terceros. Es WordPress en su estado «original».

Ya conociendo los conceptos básicos de qué es una cookie y los diferentes tipos, veamos a por qué y cómo las usa el núcleo de WordPress para hacer que toda esa magia suceda detrás de escena.

El núcleo de WordPress utiliza cookies para dos propósitos diferentes:

1. Cookies de inicio de sesión

Las cookies de inicio de sesión contienen detalles de autenticación y se utilizan cuando un usuario inicia sesión en el panel de administración de WordPress. Según el Codex de WordPress, se establecen un par de cookies de sesión diferentes:

Al iniciar sesión, WordPress usa la cookie wordpress_ [hash] para almacenar los detalles de autenticación (limitado al área / wp-admin /).
Después de iniciar sesión, WordPress establece la cookie wordpress_logged_in_ [hash]. Esto indica cuándo inició sesión y quién es usted.

Al acceder al back-end del sitio de WordPress, se realiza una verificación para ver si las dos cookies anteriores existen y no han expirado. Esto es lo que le permite omitir la pantalla wp-login.php. 😉

WordPress también establece wp-settings- {time} – [UID] cookies. El ID es su ID de usuario de la tabla de la base de datos de usuarios de WordPress. Esto almacena la configuración del panel de control personal y la interfaz de administración.

2. Cookies de comentarios

De forma predeterminada, hay cookies configuradas cuando alguien comenta en una publicación de blog (con una caducidad de 347 días). Esto es así, si vuelven más tarde, no tienen que volver a completar toda la información. Se almacenan las siguientes tres cookies:

comment_author_ [hash]
comment_author_email_ [hash]
comment_author_url_ [hash]

Sin embargo, con los cambios recientes en la política de privacidad debido a GDPR, el núcleo de WordPress ha introducido nuevas herramientas para asegurarse de que permita a los usuarios optar por la configuración de estas cookies. Esta configuración, si aún no está configurada, se puede habilitar en «Configuración → Discusión» en su panel de administración de WordPress. Seleccione la opción para «Mostrar la casilla de verificación de habilitación de cookies de comentarios». El popular complemento Akismet también le permite mostrar un aviso de privacidad.

Cómo utilizan las cookies los complementos y temas de WordPress de terceros

Al igual que WordPress utiliza cookies para determinadas funciones, los complementos y temas de terceros que instala también configuran cookies. La mayoría de ellos usa una combinación de cookies del navegador y filas de la base de datos almacenadas en la tabla wp_options o en su propia tabla personalizada.

Estos son solo algunos de los muchos ejemplos de para qué se utilizan las cookies:


-Si tiene un cuadro emergente en su sitio de WordPress y un visitante lo cierra, esto normalmente establecerá una cookie para que no vuelva a aparecer.
-Artículos agregados a un carrito de compras en su sitio de comercio electrónico. Se almacena una cookie para que el carrito de la compra conserve sus productos mientras continúa navegando por el sitio.
-Las funciones de GeoIP pueden almacenar la dirección IP y las coordenadas de latitud / longitud del visitante que navega por el sitio. Por lo general, esto se usa para mostrar contenido específico a una región determinada o quizás incluso redirigir al usuario a un subsitio diferente.
-Seguimiento de la actividad a través de los clics con un acortador de enlaces como el complemento PrettyLinks.
-El complemento de boletín informativo puede establecer una cookie para los usuarios si ya se han suscrito, esto da la capacidad de ocultar el cuadro del boletín por completo.

Básicamente, cualquier acción u opción de participación en un sitio de WordPress, por lo general, implicará configurar una cookie en el navegador detrás de escena. El objetivo de esto es, por supuesto, intentar ayudar a mejorar la experiencia del navegador o proporcionar funcionalidad adicional a través de la verificación.

Cookies de WooCommerce

Los complementos de comercio electrónico como WooCommerce generalmente tienen sus propias cookies adicionales que configuran para que los compradores puedan agregar cosas fácilmente a su carrito, almacenarlas para más tarde cuando realicen la compra e iniciar y cerrar sesión en su cuenta.

Para realizar un seguimiento de los datos del carrito, WooCommerce establece las siguientes tres cookies (no se almacena información personal en las cookies):

woocommerce_cart_hash
woocommerce_items_in_cart
wp_woocommerce_session_

Las dos primeras cookies contienen información sobre el carrito y simplemente ayudan a WooCommerce a saber cuándo cambian los datos del carrito. La tercera cookie wp_woocommerce_session_ contiene un código único para cada cliente que corresponde a una entrada en la tabla wp_woocommerce_sessions personalizada de la base de datos.

Cookies de descargas digitales fáciles


Easy Digital Downloads usa de forma predeterminada WP_Session, que es una combinación de cookies del navegador y filas de la base de datos almacenadas en la tabla wp_options. A continuación se muestra la cookie que establece:

edd_items_in_cart

Cookies y almacenamiento en caché de WordPress

Cuando se trata de la caché de WordPress, aquí es donde las cosas se complican. El almacenamiento en caché es esencialmente el proceso de almacenar recursos de una solicitud y reutilizar esos recursos para solicitudes posteriores. Básicamente, reduce la cantidad de trabajo necesario para generar una vista de página. Si bien esto es excelente para el rendimiento, causa un problema cuando se trata de cookies.

¿Por qué? Porque las cookies están ahí para realizar una determinada acción, como mantener el carrito de la compra lleno mientras navega por un sitio de WooCommerce. Sin embargo, si una página se entrega desde la caché, ni PHP ni la base de datos hacen nada, el servidor simplemente entrega una copia estática de la página.

¿Entonces que puedes hacer?

1. Utilice JavaScript


La primera opción sería utilizar JavaScript y actualizar el contenido de una página de forma dinámica. Básicamente, tiene marcadores de posición HTML y usa JavaScript para obtener información a través de una API o llamada ajax.

Un ejemplo sería cargar una lista de publicaciones en la barra lateral de WordPress usando JavaScript para tomar una lista de publicaciones sobre el wp-api y luego representarlas en la barra lateral. En ese escenario, podría actualizar la lista de publicaciones sin borrar la página del caché, ya que los datos se generan dinámicamente.

Sin embargo, esto no es ideal, siempre es mejor almacenar en caché si es posible en términos de rendimiento. Pero si debe hacer que parte del contenido permanezca dinámico mientras que la página en sí puede permanecer estática (servida desde la caché), esa es una forma de hacerlo: use JavaScript para desplegar el contenido de esa parte de la página dinámicamente a través de una API / ajax llamada. Sin embargo, a menos que pueda contratar a un desarrollador de WordPress para crear una solución de JavaScript personalizada o una extensión de un complemento, esta opción no suele ser práctica.


2. Utilice las llamadas de Admin-Ajax


Admin-ajax.php no se puede almacenar en caché, por lo tanto, puede usar las llamadas admin-ajax. Un buen ejemplo de esto es el complemento No Cache AJAX Widgets. Realiza llamadas de administrador ajax y, por lo tanto, no tiene que preocuparse por entrar en conflicto con soluciones de almacenamiento en caché a nivel de servidor o de terceros.

Sin embargo, al igual que con JavaScript, seguir esta ruta generalmente no es factible para el usuario promedio. También puede provocar otros problemas de rendimiento, como un alto uso de admin-ajax y muchas solicitudes no almacenadas en caché.


3. Excluir páginas de la caché (cuando la cookie está presente)


Varos pluguins permiten esta configuración.

A menos que pueda seguir la ruta de JavaScript o admin-ajax, excluir las páginas del almacenamiento en caché cuando una cookie específica está presente es la mejor manera de hacerlo.

Ciertas páginas de WooCommerce como carrito, mi cuenta y pago, se excluyen automáticamente del almacenamiento en caché. Existe una regla a nivel de servidor para que los usuarios omitan automáticamente el caché cuando se detecta la cookie woocommerce_items_in_cart o la cookie edd_items_in_cart para garantizar un proceso de pago sin problemas y sincronizado.

También escuchamos las cookies de inicio de sesión asociadas y configuramos el caché para omitir cuando detectamos que alguien ha iniciado sesión en WordPress. El evita que el tablero de back-end se almacene en caché accidentalmente.

De forma predeterminada, no excluimos la cookie wp_woocommerce_session_ del almacenamiento en caché. La mayoría de los sitios de WooCommerce en nuestra experiencia no tienen ningún problema. Esto también mejora el rendimiento al aumentar la proporción de HIT de su caché, mientras utiliza menos trabajadores PHP.

Sin embargo, debido a que hay muchas configuraciones diferentes de temas y complementos de WordPress, podemos excluir la cookie wp_woocommerce_session_ de la caché si es necesario. Comuníquese con nuestro equipo de soporte. El resultado es que una vez que un usuario agrega un producto a su carrito de compras, todas las solicitudes posteriores no se atenderán desde la caché, lo que aumentará el uso de trabajadores PHP.