Cargando



Sesiones PHP al detalle

Veremos como se crean las sesiones en PHP y el uso de las variables de sesión. $_session, session_register, session_start, session_destroy() etc.


nov 20 2015 22:19
Avanzado
nov 23 2015 16:58

Creación y uso de sesiones de PHP


En PHP es muy importante tener claro que son las sesiones y cómo poder utilizarlas. Las sesiones nos sirven de almacén de información de lo que hace un usuario mientras visita una página web o una aplicación entre otras cosas. El tipo de información que guardamos en las sesiones puede ser muy diversa, desde datos personales o contraseñas hasta páginas que ha visto un usuario, productos que ha encargado o comprado, y casi cualquier cosa que se nos ocurra que tenga que ver con información del usuario. Estos datos los vamos a guardar en lo que llamaremos variables de sesión que después explicaré qué son exactamente.

 

Lo primero que debemos aprender a controlar para escribir en php tanto si lo vamos a combinar con otros lenguajes como por ejemplo en HTML5 para utilizarlo en formularios de entrada como si únicamente vamos a escribir nuestro código en php es como iniciar una sesión. Esto es muy importante realizarlo al principio, antes de escribir nada en la página para que posteriormente no nos de error, de hecho es uno de los errores más comunes que se da al escribir código en HTML e introducir las sesiones en php, un warning muy típico.
Por lo tanto primero hay que introducir el siguiente código y ya después empezar con el lenguaje que vayamos a utilizar en nuestro script:

<?php
    session_start();
?>	

Esta línea escrita en php básicamente abre o continúa una sesión si ya está abierta, para un usuario en concreto. Dicha sesión la crea o reanuda basándose en un identificador que habremos obtenido a través de los métodos POST o GET o que se nos haya facilitado a través de una cookie.

 

Si queremos comprobar si existe la sesión únicamente debemos introducir la siguiente línea de código justo después de session_start().

$_SESSION[‘on’]=true;
Cuando utilizamos la función session_start() el programa llama a los gestores de almacenamiento de sesiones open para abrir y read para leer. Ésta última recupera la información de cualquier sesión existente y la introduce en la variable $_SESSION cuando read devuelve la información de sesión guardada.
Después de esto ya podremos guardar datos en nuestras variables de sesión.

 

A continuación veremos cómo funcionan las variables de sesión:

$_SESSION["Nombre_de_nuestra_variable"] = "El valor de la variable";
$_SESSION se trata de una variable global que está predefinida en el lenguaje PHP y que se encuentra en una parte del servidor junto con su identificador de sesión y que únicamente pertenece a un usuario. Con este array podemos acceder a la variable del nombre del corchete al cual se le puede dar un valor al inicializar o dejar sin valor.

 

Si queremos leer sesiones lo podemos hacer de igual manera que leemos las variables, con la palabra reservada "echo":

$_SESSION["Nombre_de_nuestra_variable"] = "El valor de la variable";

echo $_SESSION["Nombre de nuestra_variable"];
Además de la función session_start hay otra opción que nos interesa si queremos crear una sesión o recuperar una anterior y también crear una nueva variable de sesión. Se llama session_register y de nuevo esta opción debe ser escrita en el código al principio de la página antes de todo lo demás.

 

Esta opción es muy utilizada si queremos contabilizar el número de veces que entramos a una página por ejemplo:

<?
session_register('cuenta');
?>
...
<BODY>
<?
   If (isset($cuenta)==0)
   {
      $cuenta =0;
   }
   ++$cuenta;
   echo "Has actualizado esta página $cuenta veces</a>";
?>
</BODY>
...
La palabra reservada isset la utilizamos porque con el bucle if se puede dar la posibilidad de que $cuenta no haya sido inicializada, y al introducir isset esta función da un valor de cero a nuestra variable cuenta si no ha sido inicializada.

 

Hemos visto session_start y session_register para crear sesiones, pero también es importante saber cómo eliminar o destruir (de ahí el nombre) la información que viene ligada a la sesión en concreto.
Con la función session_destroy() destruiremos toda la información que esté asociada a la sesión, sin embargo no se eliminarán ni la cookie de la sesión ni las variables globales que se asocien con la misma. Si queremos volver a utilizarlas debemos llamar de nuevo a la función session_start. Es una forma de liberar la función eliminando los datos.

 

Si lo que queremos es eliminar totalmente la sesión y también desconectar al usuario en cuestión, primeramente debemos eliminar el id de la sesión. Por defecto el id se propaga en una cookie asique la borramos:

setcookie(session_name());
Después de eliminar la cookie ya podemos utilizar session_destroy() y eliminar por completo la sesión.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X