PHP | Sesiones

¿Qué es una sesión?

En general, sesión se refiere a un marco de comunicación entre dos medios. Una sesión de PHP se utiliza para almacenar datos en un servidor en lugar de la computadora del usuario. Los identificadores de sesión o SID son un número único que se utiliza para identificar a cada usuario en un entorno basado en sesión. El SID se utiliza para vincular al usuario con su información en el servidor, como publicaciones, correos electrónicos, etc.

¿En qué son mejores las sesiones que las cookies?

Aunque las cookies también se utilizan para almacenar datos relacionados con el usuario, tienen serios problemas de seguridad porque las cookies se almacenan en la computadora del usuario y, por lo tanto, están abiertas a atacantes para modificar fácilmente el contenido de la cookie. La adición de datos dañinos por parte de los atacantes en la cookie puede resultar en la falla de la aplicación.
Aparte de eso, las cookies afectan el rendimiento de un sitio, ya que las cookies envían datos al usuario cada vez que el usuario ve una página. Cada vez que el navegador solicita una URL al servidor, todos los datos de cookies para ese sitio web se envían automáticamente al servidor dentro de la solicitud.

A continuación se muestran los diferentes pasos involucrados en las sesiones de PHP:

  • Iniciar una sesión de PHP : el primer paso es iniciar una sesión. Una vez iniciada una sesión, se pueden crear variables de sesión para almacenar información. La función PHP session_start() se usa para comenzar una nueva sesión. También crea una nueva ID de sesión para el usuario.

    A continuación se muestra el código PHP para iniciar una nueva sesión:

    <?php
      
    session_start();
      
    ?>
  • Almacenamiento de datos de sesión: datos de sesión en pares clave-valor utilizando la array superglobal $_SESSION[] . Se puede acceder a los datos almacenados durante el tiempo de vida de una sesión.

    A continuación se muestra el código PHP para almacenar una sesión con dos variables de sesión Rollnumber y Name:

    <?php
      
    session_start();
      
    $_SESSION["Rollnumber"] = "11";
    $_SESSION["Name"] = "Ajay";
      
    ?>
  • Acceder a los datos de la sesión : se puede acceder fácilmente a los datos almacenados en las sesiones llamando primero a session_start() y luego pasando la clave correspondiente a la array asociativa $_SESSION .

    El código PHP para acceder a los datos de una sesión con dos variables de sesión Rollnumber y Name se muestra a continuación:

    <?php
      
    session_start();
      
    echo 'The Name of the student is :' . $_SESSION["Name"] . '<br>'
    echo 'The Roll number of the student is :' . $_SESSION["Rollnumber"] . '<br>';
      
    ?>

    Producción:

    The Name of the student is :Ajay 
    The Roll number of the student is :11
  • Destruir ciertos datos de la sesión : para eliminar solo ciertos datos de la sesión, la función de desarmado se puede usar con la variable de sesión correspondiente en la array asociativa $_SESSION .

    El código PHP para desactivar solo la variable de sesión «Rollnumber» de la array de sesión asociativa:

    <?php
      
    session_start();
       
    if(isset($_SESSION["Name"])){
        unset($_SESSION["Rollnumber"]);
    }
      
    ?>
  • Destrucción de una sesión completa : la función session_destroy() se utiliza para destruir una sesión por completo. La función session_destroy() no requiere ningún argumento.

    <?php
      
    session_start();
    session_destroy();
      
    ?>

Puntos importantes

  1. Los ID de sesión son generados aleatoriamente por el motor PHP.
  2. Los datos de la sesión se almacenan en el servidor, por lo que no es necesario enviarlos con cada solicitud del navegador.
  3. La función session_start() debe llamarse al comienzo de la página, antes de que el script genere cualquier salida en el navegador.

Publicación traducida automáticamente

Artículo escrito por Shubrodeep Banerjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *