Mammouth du PHP |
2703 Messages
04 juin 2021, 01:17
if (!isset($_SESSION['user']))
la fonction isset sert justement à savoir si une variable existe. donc il n'y a aucun problème à passer en paramètre à cette fonction quelque chose qui n'existe pas.
avec seulement :
session_start();
$user = $_SESSION['user'];
rien n'est testé, si l'internaute n'est pas connecté, cela mettra bien quelque chose d'erroné dans $user
avec
session_start();
if (!isset($_SESSION['user']))
{
header('Location:index.php');
die();
}
$user = $_SESSION['user'];
si l'on arrive à cette dernière ligne, c'est que $_SESSION['user'] existe, donc $user recevra bien quelque chose qui existe, mais qui peut être vide. si l'user ne peut pas être vide, c'est encore mieux de faire :
session_start();
if (!empty($_SESSION['user']))
{
header('Location:index.php');
die();
}
$user = $_SESSION['user'];
la doc
https://www.php.net/manual/fr/function.empty.php nous dit : "La fonction empty() ne génère pas d'alerte si la variable n'existe pas. " et "Cela signifie que empty() est strictement équivalent à !isset($var) || $var == false."