Lenguaje PHP

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:

¿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.

Usando variables PHP
Usando variables PHP

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.

Usando Sesiones PHP
Usando Sesiones PHP

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 de session.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>
Crear Sesiones en PHP Ejemplo completo
Crear Sesiones en PHP Ejemplo completo

DESCARGAR EJEMPLO COMPLETO

Les dejare un fichero comprimido para que descarguen y lo implementen.

Ver Demostración

Ver Demo

CONCLUSIÓ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.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

3 comentarios

  1. 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

      1. 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

Deja una respuesta

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

Botón volver arriba