Crear Sesiones en PHP. En en lenguaje PHP, las sesiones se crean mediante el uso de la función session_start(). Las sesiones son muy usadas en el mundo del internet y nos sirven para almacenar datos. Sin embargo, estas son recordadas en otras páginas sin necesidad de volver a solicitarlos.
Esto permite crear sesiones personalizadas para cada usuario que accede a nuestra página web. Las Sesiones permiten almacenar datos en un arreglo llamado $_SESSION
que estará activo y accesible para todas las páginas que tú quieras darle tu sesión.
Las creaciones de sesiones son muy sencillas, podemos crearlo mediante variables, es decir asignarlo directamente de manera manual o mediante el uso de formularios HTML.
Crear Sesiones en PHP: Ejemplo completo
En PHP, las sesiones se crean usando la función session_start(). Puedes ver el ejemplo en funcionamiento en el siguiente enlace:
Ver Demo¿Qué requisitos necesito para crear sesiones?
Necesitamos algunos recursos que está disponible en nuestro servidor web. Como ser:
- Lenguaje de programación PHP
- Servidor web (puede ser propio como XAMPP, WAMP, VertrigoServ, entre otras.)
- Formulario HTML5
¿Cómo funciona las sesiones en PHP?
Para darle una respuesta realizaremos una comparativa con las variables y poder entender cómo funciona las sesiones en PHP.
a) Haciendo uso de las variables.
La imagen que a continuación mostramos, está haciendo uso de las variables para obtener la información e imprimirlas mediante echo
. Por lo tanto, si deseamos imprimir en otro fichero nos mostrara un error tipo NOTICE
porque la variable no está definida. A continuación, un ejemplo.
b) Haciendo uso de las sesiones PHP
En este segundo ejemplo estamos haciendo uso de las sesiones. Primeramente, creando la sesión para luego ser llamado desde diferentes archivos simplemente asignado session_start();
al fichero que deseamos mostrar la información. A continuación, un ejemplo.
Ustedes saquen sus conclusiones a la hora de utilizar esta estrategia de programación. La recomendación es el uso de las sesiones y son muy fáciles de crear.
Diferencias entre Sesiones y Cookies
Muchos programadores confunden las sesiones con las cookies del navegador. Veamos algunas diferencias.
a) Cookies:
- Las cookies nos permiten guardar información en el navegador web haciendo uso de (nombre=valor), esta información son enviados al servidor en cada petición.
- En pocas palabras las cookies es un método que permite guardar información en el disco duro del ordenador (cliente) para recuperarla más adelante.
- Ahora, hablando de seguridad, los usos de cookies no son recomendadas para almacenar información sensible puesto que es información enviada por el cliente (y puede ser alterada por terceros) y cualquier dato importante debe ser siempre tratado con la mayor seguridad posible.
b) Sesiones
- Por otro lado, en las sesiones es diferente, la información se crea y se mantiene en el servidor hasta que se cierra la sesión, esto puede ocurrir por intervención del usuario o por tiempo de expiración designada.
- Una sesión en PHP (al igual que una cookie) crea un archivo y se almacena en el ordenador tipo servidor.
- El archivo temporal se determina en la configuración del fichero
php.ini
, a través desession.save_path
.
EJEMPLO COMPLETO PARA CREAR SESIONES
Vamos a crear un formulario de inicio de sesión, será un formulario muy simple, pero dejará claro lo importante que son las sesiones en PHP, este ejemplo consta de 3 páginas PHP:
- Login.php – En esta página mostrara el formulario para iniciar sesión por parte del usuario.
- PanelControl.php – Este fichero será visible si el usuario se ha logueado correctamente y podrá acceder a recursos importantes.
- CerrarSesion.php – Esta página será el encargado de destruir la sesión (cerrar sesión).
Contenido de ficheros para el ejemplo
Login.php
Mostrará el formulario HTML para crear la sesión.
<?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Login.php</title> </head> <body> <?php if(isset($_SESSION['nombre'])){ echo "<p>Has iniciado sesion como: " . $_SESSION['nombre'] . ""; echo "<p><a href='CerrarSesion.php'>Cerrar Sesion</a></p>"; echo "<br><p><a href='PanelControl.php'>Ir al panel de control</a>"; }else { ?> <h2>Creando la sesion</h2> <form action="PanelControl.php" method="POST"> <p>Nombres:</p> <p><input type="text" placeholder="Ingrese su Nombre" name="nombre" required/></p> <p><input type="submit" value="Crear Sesion" /></p> </form> <?php } ?> </body> </html>
PanelControl.php
Si la sesión existe, este fichero mostrara contenido sensible para el usuario autorizado.
<?php session_start();?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Panel Control</title> </head> <body> <h2>La sesion creada correctamente</h2> <p> <?php if(isset($_POST['nombre'])){ $_SESSION['nombre'] = $_POST['nombre']; echo "Bienvenido! Has iniciado sesion como:<b> ".$_POST['nombre']."</b>"; }else{ if(isset($_SESSION['nombre'])){ echo "Has iniciado Sesion como: ".$_SESSION['nombre']; }else{ // Si la sesion expiro o no se creo mostraremos el siguiente mensaje echo "Acceso Restringido"; } } ?></p> <br> <p><a href="Login.php">Ir a la página inicial</a></p> <br> <p><a href='CerrarSesion.php'>Cerrar Sesion</a></p> </body> </html>
CerrarSesion.php
Fichero muy importante y se encargara de destruir la sesión para no dejar huellas.
<?php // Mostramos la sesion session_start(); //Distruimos la sesion session_destroy(); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Cerrar Sesion</title> </head> <body> <h2>Has Cerrado Sesion correctamente</h2> <br/> <p><a href="Login.php">Ir al Login</a></p> </body> </html>
DESCARGAR EJEMPLO COMPLETO
Les dejare un fichero comprimido para que descarguen y lo implementen.
Crear eliminar sesiones PHP
Ver Demostración
Ver DemoCONCLUSIÓN
Con esta breve explicación ya conocemos lo que son sesiones y como funciona en el mundo de los sistemas y páginas web.
También, hemos visto las diferencias entre sesiones y cookies. Espero que les sirva para que implemente en sus sistemas web.