Bonjour,

Alors, mon problème c'est que je n'arrive pas a résoudre ce problème, quand quelqu'un se connecte le header ne se change pas, ou peut être que j'ai mal fais.

j'ai un dossier nommé inc et a l'intérieur j'ai créer mon fichier header.php et dans mon fichier index.php je fais un require 'inc/header.php' le header.php contient un menu: Home, a propos, et connexion quand la personne s'est pas connecté. du coup lorsque je fais un: if(!empty($_SESSION['id] sur le menu a afficher quand la personne s'est connecté cela ne s'affiche pas. voici mon code

dans mon fichier index j'ai ce-cis:

<?php
require 'inc/session.php';
require 'inc/init.php';
session_start();
if(!empty($_SESSION['id']) && !empty($_SESSION['pseudo']))
{
    $req = $pdo->prepare("SELECT * FROM users WHERE id = ? ");
    $req->execute(array($_SESSION['id']));
    $user = $req->fetch();
}
if(!est_connecte()){
    header("Location: http://localhost/xampp/DEv/connexion.php");
    exit(); 
}
?>

et pour le menu que je veux faire c'est cela:

<nav class="site-navigation text-right ml-auto d-none d-lg-block" role="navigation">
            <ul class="site-menu main-menu js-clone-nav ml-auto ">
            <?php
            if(!empty($_SESSION['id']))
            {
            ?>
             <li class="active"><a href="index.html" class="nav-link">Home</a></li>
             <li><a href="index.html" class="nav-link">A propos</a></li>
             <li class="sign-up btnPopup sign-up-avatar" data-toggle="dropdown" id="btnPopup"><a href="#" class="nav-link"><img src="../../../users_account/alphamembre/avatar/<?php echo $user['avatar']; ?>" id="avatar" height="150px;" alt="<?php echo $user['pseudo']; ?>" class="avatar-navbar"></a></li>   
           <?php
            }
            ?>
              <li class="active"><a href="index.html" class="nav-link">Home</a></li>
              <li><a href="" class="nav-link" id="connect-user">Connexion | Inscription</a></li>
            </ul>
          </nav>

3 réponses


Carouge10
Réponse acceptée

Bonsoir,
Que contiennent les 2 premiers fichiers ?
que donne un var_dump($_SESSION); entre le session_start et le if ?

Bonjour,

Désolé pour le retard. alors pour le index.php contient la session_start(); mais le header.php n'en contient pas. j'ai juste déclarer les balises <header></header>. ensuirte Pour le var_dump ca me renvoi l'id de l'utilisateur. normalement ca doit être bon je trouve ?

<header class="site-navbar light site-navbar-target" role="banner">
    <div class="container-fluid">
      <div class="row align-items-center position-relative">
        <div class="col-3">
          <div class="site-logo">
            <a href="#"><strong><img src="images/logo/logo.png"></strong></a>
          </div>
        </div>
        <div class="col-9 text-right">
          <span class="d-inline-block d-lg-none"><a href="#" class=" site-menu-toggle js-menu-toggle py-5 "><span class="icon-menu h3 text-black"></span></a></span>
          <nav class="site-navigation text-right ml-auto d-none d-lg-block" role="navigation">
            <ul class="site-menu main-menu js-clone-nav ml-auto ">
            <?php
            if(!empty($_SESSION['id']))
            {
            ?>
             <li class="active"><a href="index.html" class="nav-link">Home</a></li>
             <li><a href="index.html" class="nav-link">A propos</a></li>
             <li class="sign-up btnPopup sign-up-avatar" data-toggle="dropdown" id="btnPopup"><a href="#" class="nav-link"><img src="../../../users_account/alphamembre/avatar/<?php echo $user['avatar']; ?>" id="avatar" height="150px;" alt="<?php echo $user['pseudo']; ?>" class="avatar-navbar"></a></li>
            <div class="dropdown-menu">
                <a class="dropdown-item user-name" href="users_account/profile.php"><i class="far fa-user" style="margin-right: 5px;"></i><?php echo $_SESSION['pseudo']; ?><br>
                    <span id="text"><?php echo $user['email']; ?></span>
                </a>
                <!--<div class="user session_mail ">
</div>-->
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="users_account/profile.php"><i class="far fa-user" style="margin-right: 5px;"></i>Mon compte</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="../../../inc/deconnexion.php"><i class="fas fa-sign-in-alt sign" style="margin-right: 5px;"></i>Se déconnecter</a>
            </div>  
            <?php
            }else{
            ?> 
              <li class="active"><a href="index.html" class="nav-link">Home</a></li>
              <li><a href="" class="nav-link" id="connect-user">Connexion | Inscription</a></li>
            <?php
            }
            ?>
            </ul>
          </nav>

        </div>
      </div>
    </div>
</header>

C'est bon j'ai réussis à résoudre mon probème. merci à toi :)