[RESOLU] probleme pour recuperer une variable proprement

Mammouth du PHP | 506 Messages

04 juin 2021, 00:51

bonjour a tous
au début de ma page j ai ce code pour que seul les membres inscrit puisse y avoir acces

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION['user'])) { header('Location:index.php'); die(); }
j ai tente de rendre ma variable propre de cette façon
mais les membres sont redirige vers index.php

Code : Tout sélectionner

session_start(); $_SESSION = !empty($_SESSION['user']) ? $_SESSION['user']: NULL; { header('Location:index.php'); die(); }

Mammouth du PHP | 2703 Messages

04 juin 2021, 00:56

qu'est-ce qui n'est pas bon dans le premier code ?

Mammouth du PHP | 506 Messages

04 juin 2021, 00:59

bonjour

je souhaiterais pouvoir la rendre propre

comme iles expliquent ici
https://www.commentcamarche.net/faq/483 ... re-du-code

Mammouth du PHP | 2703 Messages

04 juin 2021, 01:06

il n'y a aucune utilisation de variable avant de bien la récupérer dans le premier code.

Mammouth du PHP | 506 Messages

04 juin 2021, 01:09

merci pour la reponse
mais cette variable
$_SESSION['user']

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."

Mammouth du PHP | 506 Messages

04 juin 2021, 07:55

ah super or
un grand merci pour cette théorie
et surtout cette explication
je ne peux vraiment que de te donner raison

je vais donc laisser comme cela

vraiment merci beaucoup