Page 1 sur 1

probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 00:51
par flexi2202
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(); }

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 00:56
par or 1
qu'est-ce qui n'est pas bon dans le premier code ?

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 00:59
par flexi2202
bonjour

je souhaiterais pouvoir la rendre propre

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

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 01:06
par or 1
il n'y a aucune utilisation de variable avant de bien la récupérer dans le premier code.

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 01:09
par flexi2202
merci pour la reponse
mais cette variable
$_SESSION['user']

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 01:17
par or 1
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."

Re: probleme pour recuperer une variable proprement

Posté : 04 juin 2021, 07:55
par flexi2202
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