Page 1 sur 1

connection/deconnexion

Posté : 29 avr. 2021, 16:33
par JAG11
Bonjour
après avoir initialisé mes variables de session

Code : Tout sélectionner

foreach ($connect as $données) { $_SESSION['Id_Assos'] = $données['Id_Assos']; $_SESSION['Id_Droit'] = $données['Id_Droit']; $_SESSION['Identifiant'] = $données['Identifiant']; }
Je récupère dans un autre fichier la variable $_SESSION['Id_Droit']

Code : Tout sélectionner

ession_start(); $Droit=$_SESSION['Id_Droit'];
si je suis connecté le code suivant fonctionne par contre quand je clique sur deconnexion ça bug

Code : Tout sélectionner

<?php if ($_SESSION['Id_Droit'] == 3) { ?> <a class="dropdown-item" href="../registration/logout.php">Deconnexion</a> <?php } else { ?> <a class="dropdown-item" href="../registration/login.php">Connexion</a> <?php } ?>
avec comme message
Undefined index: Id_Droit in E:\FFMO\Include\NavUtilisateur.php on line 5
la ligne 5 étant :

Code : Tout sélectionner

$Droit=$_SESSION['Id_Droit'];
Avec mon fichier logout.php écrit comme ceci

Code : Tout sélectionner

<?php // Initialiser la session session_start(); // Détruire la session. if(session_destroy()) { header("Location: ../index.php"); } ?>
La page index.php étant la page d'accueil du site.

J'ai oublier quelque chose, mais quoi?

Re: connection/deconnexion

Posté : 29 avr. 2021, 16:38
par or 1
J'ai oublier quelque chose, mais quoi?
initialiser $_SESSION['Id_Droit'] avec un code php qui fonctionne.

Re: connection/deconnexion

Posté : 29 avr. 2021, 16:54
par JAG11
Ben mon code fonctionne sinon quel serait le bon code, parce que là je pédale.
Quand je fais un echo sur ma variable, j'ai bien la valeur.
Merci

Re: connection/deconnexion

Posté : 29 avr. 2021, 16:56
par or 1
foreach ($connect as $données) {
$_SESSION['Id_Assos'] = $données['Id_Assos'];
$_SESSION['Id_Droit'] = $données['Id_Droit'];
$_SESSION['Identifiant'] = $données['Identifiant'];
}
echo $_SESSION['Id_Droit'];

cela affiche la valeur attendue ?

Re: connection/deconnexion

Posté : 29 avr. 2021, 17:12
par JAG11
Je viens de refaire à l'instant pour ne pas dire de bêtise, je confirme echo $_SESSION['Id_Droit']; renvoi bien la valeur attendue.
Pourquoi est ce surprenant?

Re: connection/deconnexion

Posté : 29 avr. 2021, 19:07
par JAG11
Voilà mon code qui fonctionne

Code : Tout sélectionner

<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <?php if (isset($_SESSION['Id_Droit'])) { ?> <a class="dropdown-item" href="../registration/logout.php">Deconnexion</a> <?php } else { ?> <a class="dropdown-item" href="../registration/login.php">Connexion</a> <?php } ?> <?php if ((isset($_SESSION['Id_Droit'])) && (($_SESSION['Id_Droit']) == 3)) { ?> <a class="dropdown-item" href="/Federation.php">Administration</a> <?php } ?> <a class="dropdown-item" href="/Federation.php">test</a> </div>

Re: [RESOLU] connection/deconnexion

Posté : 30 avr. 2021, 09:28
par Shadowwera
Salut !

Tu pourrais améliorer légèrement ton code, du moins l'optimiser

Etant donner que tu vérifie déja si isset($_SESSION['Id_Droit']) === true, pourquoi le revérifier une seconde fois ici ?
<?php
if ((isset($_SESSION['Id_Droit'])) && (($_SESSION['Id_Droit']) == 3)) { ?>
  <a class="dropdown-item" href="/Federation.php">Administration</a>
<?php } ?>
Tu pourrais simplement vérifier cette condition de cette manière et ne pas à réécrire 2 fois cette même condition :
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
 <?php
 if (isset($_SESSION['Id_Droit'])) { ?>
     <a class="dropdown-item" href="../registration/logout.php">Deconnexion</a>
		<?php
		if($_SESSION['Id_Droit'] === 3) { ?>
         <a class="dropdown-item" href="/Federation.php">Administration</a>
		<?php }
} else { ?>
     <a class="dropdown-item" href="../registration/login.php">Connexion</a>
  <?php } ?>
    <a class="dropdown-item" href="/Federation.php">test</a>
</div>

Re: [RESOLU] connection/deconnexion

Posté : 30 avr. 2021, 10:05
par JAG11
Oups, en effet merci