You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
7 Hrs
39 Min
17 Seg

Trabajando con sesiones

6/22
Resources

How do PHP sessions work?

Working with sessions in PHP is a fundamental part of handling user authentication and content customization on a website. Sessions allow you to store user data on the server, making use of a superglobal variable to maintain the state of the application. Here's how you can implement basic sessions in PHP.

How to create a basic authentication system with sessions?

To create a basic session authentication system using PHP, you need to follow a series of simple steps. While it is ideal to work with a database with users that includes a complete authentication system, these steps will allow you to start with a solid foundation.

  1. Project Structure:

    • Create a folder called sessions.
    • Inside this folder, create an index.php file that will serve as the home page.
    • Create a login.php file to handle the login process.
  2. Main Page (index.php):

    • This file should be able to detect whether a user is logged in or not, and display a corresponding message.
<?phpsession_start();
if (isset($_SESSION['id'])) { echo "<h1>Hello, " . $_SESSION['username'] . "</h1>";} else { echo "<h1>You are not logged in ☹</h1>";}?>
  1. User Login (login.php):
    • Simulate a database with an array of users.
    • Allow login via URL for simplicity.
<?phpsession_start();
 $users = [ [ ['username' => 'retaxito', 'email' =>' [email protected]'] , ['username' => 'Mr. Michi', 'email' => '[email protected]']];
 $user = $_GET['user'] ?? null;
if ($user !== null && isset($users[$user])) { $_SESSION['id'] = $user; $_SESSION['username'] = $users[$user]['username']; $_SESSION['email'] = $users[$user]['email']; echo "The chosen user is " . $users[$user]['username'];} else { echo "User not found.";}?

How to destroy a session?

Logging out is essential to ensure that users can safely exit their account at the end of their interaction with the system. This process in PHP is extremely simple.

  1. Create the logout.php file:
    • This file is responsible for destroying the session when the user decides to log out.
<?phpsession_start();session_destroy();?>
  1. Testing the logout:
    • By accessing this file, all sessions are destroyed and the user is logged out.

Implementing these concepts provides you with a basic session management system, which lays the foundation for a more robust system that will include database and advanced security protection in the future. Keep practicing and exploring to refine your skills!

Contributions 9

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

Para cerrar una sesión usamos el método session_destroy()

Les dejo un TIPs por si les pasa en algún momento y es que con respecto al uso de sesiones, después de la etiqueta <?php la siguiente linea inmediata tiene que ser session_start() y no un espacio en blanco, dado que en algunos servidores web públicos eso daría error

🐘 Las sesiones en PHP son una forma de almacenar información (en variables) que se puede utilizar a través de múltiples páginas. A diferencia de las cookies, la información de la sesión se almacena en el servidor. El ejemplo que proporcionaste muestra un uso básico de las sesiones para manejar el inicio de sesión y cierre de sesión de usuarios en una aplicación web. \*\*sesiones/index.php\*\* Este archivo es la página principal (perfil) de tu aplicación. Al principio, se llama a `session\_start()`, que es esencial para iniciar el uso de las sesiones en PHP. Si no se llama a esta función, no podrás acceder ni modificar las variables de sesión. Luego, el código verifica si existe un ID de sesión (`$\_SESSION\["id"]`). Si el ID existe, significa que el usuario ha iniciado sesión, y muestra un mensaje de bienvenida junto con el nombre de usuario y el correo electrónico almacenados en la sesión. Si no existe un ID de sesión, muestra un mensaje indicando que el usuario no ha iniciado sesión. \*\*sesiones/login.php\*\* Este archivo es el encargado de "iniciar sesión". Primero, se inicia la sesión con `session\_start()`. Luego, hay una lista de usuarios (en este caso, una matriz de usuarios). El código obtiene un parámetro `user` de la URL (a través de `$\_GET\["user"]`) que indica qué usuario ha iniciado sesión. El script establece las variables de sesión `id`, `username` y `email` basadas en la información del usuario seleccionado. Estas variables de sesión estarán disponibles en todos los scripts de PHP que también llamen a `session\_start()`. \*\*sesiones/logout.php\*\* Este archivo se encarga de "cerrar sesión". Al igual que los otros scripts, comienza con `session\_start()`. Luego, llama a `session\_destroy()`, lo que elimina todas las variables de sesión y termina la sesión actual. Después de ejecutar este script, el usuario ya no estará "logueado" y, si regresa a `index.php`, verá el mensaje que indica que no ha iniciado sesión. En resumen, este conjunto de scripts muestra un flujo básico de autenticación de usuarios utilizando sesiones en PHP. Las sesiones permiten llevar un seguimiento del estado del usuario a través de diferentes páginas, lo que es fundamental en muchas aplicaciones web.

Que son las sesiones

Son muy similares a las cookies, pero estas nos permiten implementar sistemas de autenticacion dentro de nuestros sition web. Una sesion es una cookie temporal y encriptada que estrá viva y contendrá toda la informacion del usuario mientras esté activa

Las sesiones se destruyen en cuanto hacemos logout. Con las sesiones podemos tener informacion especifica de un usuario para pesonalizar el contenido que le mostramos

Con la funcion session_start() podemos decirle a PHP que queremos empezar a trabajar con sesiones, siempre hay que incluirla en todos los archivos en donde queremos usar sesiones

Una vez que tenemos una sesion iniciada, podemos empezar a escribir y obtener datos a traves de la variable superglobal $_SESSION (Un arreglo de datos unico por usuario), cuando cerremos la sesion estos datos serán borrados

Debemos tener cuidado de no usar dos veces la funcion session_start, ya que esto puede provocar un error

login.php:

session_start();

$users = [

    array(
        "username" => "Retax",
        "email" => "[email protected]"
    ),

    array(
        "username" => "Axel",
        "email" => "[email protected]"
    )
    ];

    $user = $_GET["user"] ?? "";

    $_SESSION["id"] = $user;
    $_SESSION["username"] = $users[$user]["username"];
    $_SESSION["email"] = $users[$user]["email"];

index.php

<?php session_start();  ?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php if( isset( $_SESSION["id"] ) ): ?>
        <h1>Hola! <?= $_SESSION["username"] ?> !</h1>
        <h2>Tu correo es <?=$_SESSION["email"] ?></h2>
    <?php else: ?>
        <h1>No haz iniciado sesión 😔</h1>
    <?php endif; ?>
</body>
</html>

logout.php

<?php
session_start();

session_destroy();

echo "<p> Finalizando la sesion, sesion finalizada</p>" ;

Codigo de la clase:

index

<?php
session_start();


?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Perfil</title>
</head>
<body>
        <?php if(isset($_SESSION['id'])): ?>
            <h1>Hola <?= $_SESSION["username"] ?></h1>

        <?php else: ?>
            <h1>No estás logueado</h1>

        <?php endif; ?>



</body>
</html>

login

<?php

session_start();

$users = [
    array(
        "username" => "Jorge",
        "email" => "[email protected]"
    ),

    array(
        "username" => "MR. Michi",
        "email" => "[email protected]"
    ),



    

];

$user = $_GET["user"] ?? "";

echo "El usuario elegido es " . $users[$user]["username"];

$_SESSION["id"] = $user;
$_SESSION["username"] = $users[$user]["username"];
$_SESSION["email"] = $users[$user]["email"];

logout

<?php
session_start();
session_destroy();
?>```


:D!!!! jajaja me dio como emoción la clase jajajajajaja xD!!

La manera en la que se crean las sesiones antes me parecía muy enredado, gracias a esta clase lo he entendido mejor

Para trabajar con sesiones en PHP, primero debes iniciar la sesión en la página en la que deseas almacenar datos. Puedes hacer esto utilizando la función session_start(). Una vez que se ha iniciado la sesión, puedes almacenar datos en la variable global $_SESSION.

Para finalizar una sesión en PHP, puedes utilizar la función session_destroy(). Esto eliminará todos los datos almacenados en la sesión y cerrará la sesión del usuario.

Outstanding!!!