Sesiones en PHP

Hola a todos, hoy os voy a explicar como podemos utilizar las sesiones en PHP.

Un problema común en PHP es que hay datos que necesitamos en todos los ficheros PHP que manejemos como si un usuario esta logueado, por ejemplo.

En PHP, tenemos una forma sencilla de compartir información entre diferentes páginas o ficheros, las sesiones.

Las sesiones en PHP, lo que hacen es guardar una información para cada usuario que entra en tu web con PHP, ¿nunca te has preguntado porque en un sitio en el que ya te has logueado al salir, no hace falta que te vuelvas a loguear? Es debido a las sesiones, piensa que son como las cookies pero a nivel de servidor.

Para utilizarlas en PHP, tienes que iniciar la sesión con session_start(); esto lo deberás hacer en todo fichero donde uses sesiones. Eso si, solo deberías iniciarla una vez por fichero, si lo haces dos veces saltara un error.

Una vez que hayas iniciado la sesión, puedes utilizar $_SESSION que es como una especie de array global.

Veamos un pequeño ejemplo:

— index.php


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Index</title>
</head>

<body>


    <?php

    if (isset($_POST['enviar'])) {

        session_start();

        if (isset($_POST['nombre']) && !empty($_POST['nombre'])) {
            $_SESSION['nombre'] = $_POST['nombre'];
        }

        if (isset($_POST['apellidos']) && !empty($_POST['apellidos'])) {
            $_SESSION['apellidos'] = $_POST['apellidos'];
        }
    }

    ?>


    <form method="POST">

        <label for="nombre">Nombre</label>
        <input type="text" name="nombre" id="nombre" />
        <br />

        <label for="apellidos">Apellidos</label>
        <input type="text" name="apellidos" id="apellidos" />
        <br />

        <input type="submit" name="enviar" value="Guardar en la sesion">
        <br />
    </form>

    <a href="pagina2.php"><button>Ir a la pagina 2</button></a>


</body>

</html>

— pagina2.php


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Pagina 2</title>
</head>

<body>

    <?php


    session_start();

    if (isset($_SESSION['nombre'])) {
        echo "Nombre: " . $_SESSION['nombre'] . "<br/>";
    } else {
        echo "No hay nombre en la sesion.<br/>";
    }

    if (isset($_SESSION['apellidos'])) {
        echo "Apellidos: " . $_SESSION['apellidos'] . "<br/>";
    } else {
        echo "No hay apellidos en la sesion.<br/>";
    }

    if (isset($_POST['borrar'])) {
        session_destroy();
        header("Location: index.php");
    }

    ?>




    <form method="POST">
        <input type="submit" name="borrar" value="Borrar sesion">
        <br />
    </form>

    <a href="index.php"><button>Volver al index</button></a>


</body>

</html>

Este seria el resultado:

Para borrar la sesión, usamos session_destroy();

Si queremos borrar una variable en concreto, se puede usar unset($_SESSION[‘mi_variable’]);

Aquí te dejo el ejemplo para descargar.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

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