No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Trabajando con sesiones

6/22
Recursos

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

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

session_regenerate_id para renovar la cookie PHPSESSIONID

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();
?>```


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!!!