Para cerrar una sesión usamos el método session_destroy()
Debugging
¿Cómo hacer debugging en PHP?
La función dd() en PHP
Cookies y sesiones
¿Qué son las cookies?
Trabajando con cookies
¿Qué son las sesiones?
Trabajando con sesiones
Manejo de excepciones
¿Qué son las excepciones?
Implementando try/catch
Revisando los métodos de las excepciones
Crea tus propias excepciones
Trabajando con fechas
¿Cómo trabajar con fechas en PHP?
Fechas con funciones vs. fechas con POO
Funciones para fechas
Más funciones para fechas
Expande tu arsenal de funciones para fechas
Modularización
Modularización del código
Namespaces
PSR-4 y Composer
Front Controller
El archivo .htaccess
Traits
Cierre
¿Quieres aprender sobre bases de datos?
You don't have access to this class
Keep learning! Join and start boosting your career
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.
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.
Project Structure:
sessions
.index.php
file that will serve as the home page.login.php
file to handle the login process.Main Page (index.php):
<?phpsession_start();
if (isset($_SESSION['id'])) { echo "<h1>Hello, " . $_SESSION['username'] . "</h1>";} else { echo "<h1>You are not logged in ☹</h1>";}?>
<?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.";}?
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.
logout.php
file:<?phpsession_start();session_destroy();?>
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
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
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();
?>```
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!!!
Want to see more contributions, questions and answers from the community?