septiembre 07, 2016

Manejo básico de sesiones con PHP



Gracias w3Schools


Exactamente para qué nos sirve una sesión? o como la deberíamos utilizar de manera correcta y para ello imaginemos el siguiente escenario.


Cuando se trabaja con una aplicación, se abre, hace algunos cambios y luego se cierra. Esto es muy parecido a una sesión. El equipo sabe quién eres. Se sabe cuando se inicia la aplicación y cuando se termina.


Bonito no? pero eso es en un equipo en donde básicamente tienes el control de todo pero y qué pasa cuando nos referimos al servidor? en Internet hay un problema: el servidor web no sabe quién eres o lo que haces, porque la dirección HTTP no mantiene estado.


Las variables de sesión resolver este problema mediante el almacenamiento de la información del usuario a utilizar en varias páginas (por ejemplo, nombre de usuario, color preferido, etc). Por defecto, las variables de sesión duran hasta que el usuario cierra el navegador.


Así que; Las variables de sesión contienen información acerca de un solo usuario, y están disponibles para todas las páginas en una sola aplicación.


Pero pasemos a PHP crear una sesión es tan simple como esto

  1. session_start();
  2. session_unset();
  3. ?>
Recuerda que no son enchiladas así que bueno si ya tenemos nuestra sesión iniciada te preguntaras y como guardo los datos o donde obtengo la información, pues bueno para ello existe una variable global llamada $_SESSION, por lo que tendríamos algo así

  1. session_start();
  2. $_SESSION["color"] = "green";
  3. $_SESSION["animal"] = "cat";
  4. echo "Listo ya asignamos nuestras variables de sesion";
  5. ?>


Nota: La función session_start () debe ser la primera cosa en su documento. Antes de cualquier etiqueta HTML.


Y bueno pero y como recuperamos los valores o como sabemos que es lo que tiene cada una de ellas en caso de requerir la información

  1. session_start();
  2. echo "Color favorito " . $_SESSION["color"] . ".
    "
    ;
  3. echo "Animal favorito " . $_SESSION["animal"] . ".";
  4. ?>
Ahora bien una de las ventajas que tiene la variable global $_SESSION es que esta puede ser tratada como un array lo cual es una ventaja sobre todo al momento de buscar errores y para ver todo lo que contiene podemos hacer uso del siguiente método


  1. session_start();
  2. echo '
    '
    ;
  3. print_r($_SESSION);
  4. echo '
';
  • ?>
  • Sobre escribir un valor en nuestra sesión es tan simple como hacer esto
    1. session_start();
    2. $_SESSION["color"] = "yellow";
    3. print_r($_SESSION);
    4. ?>

    Pues bien ya solo nos resta eliminar el contenido de la misma para para ello tenemos 2 funciones que básicamente funcionan igual pero no hacen lo mismo y estas son session_unset(); y session_destroy();


    Y a que nos referimos con esto pues bueno session_unset() libera todas las variables de sesión actualmente registradas mientras que session_destroy() destruye toda la información asociada con la sesión actual. No destruye ninguna de las variables globales asociadas con la sesión, ni destruye la cookie de sesión. Para volver a utilizar las variables de sesión se debe llamar a session_start().


    y para usarlas pues es solo tenemos que hacer lo siguiente en el caso de session_unset()

    1. session_start();
    2. session_unset();
    3. ?>
    Y en el caso de session_destroy()
    1. session_start();
    2. session_destroy();
    3. ?>
    Recuerda si te ha gustado el post no olvides compartirlo y sobre todo no olvides dejar los comentarios que siempre son lo mas importarte para nosotros