Crear Sesiones en PHP: Ejemplo completo
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.
Tus explicaciones sobre sesiones me han sido de gran ayuda.
Muchas gracias
Miguel Urquizu
PS Tengo un diccionario
213,4,33,41/polidic (php, mariadb, javascrip)
no se si me podrías aconsejar alguna estrategia para que se fueran mostrando las palabras a medida que se va tecleando en el campo de busqueda. gracias otra vez
Hola Miguel
Aquí te envío este artículo que habla del tema
https://www.baulphp.com/autocompletar-varios-inputs/
Muchas gracias Nestor!
Justo estoy mirando tu entrada: «Autocompletar usando PHP/MySQL y jQuery»
me surgen dudas pues no veo como entra en funcionamiento “mostrar.php” cada vez que se ejecuta autocompletar con unkeyup, en index.php. Ni Cual es la funcion de jquery.min.js.
Entiendo que ejecutando index.php debe funcionar autocompletar. Pero no veo como se enlaza con mostrar.php
Hace tiempo que intento poner autocompletar en mi diccionario. Tu ayuda me seria de mucha utilidad
Muchas gracias