Problème Session - ID

C_L

C_L Le 22 avril 2016 à 18:01 (Édité le 25 janvier 2019 à 17:50)

Bonjour,

Voilà j'ai suivi le tuto création espace membre, que j'ai introduis dans mon site.
Donc quand je me connecte j'arrive sur ma page profil qui me donne les informations sur mon compte.
Mais dès que je clic sur une autre rubrique dans mon site, ma session est quitté (plus l'info dans mon URL) pourtant j'ai fais des session_start() dans mes pages, mais .. le problème vient peut être que mon menu est dans un include non ?

Bonne fin journée,
C_L
Florian

Florian Le 22 avril 2016 à 18:18

Sans le code très dur de t'aider
C_L

C_L Le 22 avril 2016 à 18:27

Tu veux quel code? =S
C_L

C_L Le 22 avril 2016 à 18:59

Voici mon nav (menu) include :
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">

<head>

</head>

<body>


        <div id="nav">
        
<?php include ("config.php") ; ?>
        

<li><a href="<?php echo ROOT_PATH.'/index.php'; ?>" class="titre"> ACCUEIL </a></li>
<li><a href="<?php echo ROOT_PATH.'/2.APERITIFS/pageaperitif.php'; ?>" class="titre"> APERITIF</a></li>
<li><a href="<?php echo ROOT_PATH.'/3.ENTREES/pageentree.php'; ?>" class="titre"> ENTREES</a></li>
<li><a href="<?php echo ROOT_PATH.'/9.PLATS/pageplat.php'; ?>" class="titre"> PLATS</a></li>
<li><a href="<?php echo ROOT_PATH.'/4.DESSERTS/pagedessert.php'; ?>" class="titre"> DESSERTS</a></li>
<li><a href="<?php echo ROOT_PATH.'/5.ESPACEPERSO/formulaireinscription.php'; ?>" class="titre"> UNE RECETTE?</a></li>    
        

            

    </div>
<img src="IMAGES/header.png" class="headerimg" alt="header" width="940px" height="88px"> 


</body>
</html>
Je dois préciser l'id de ma page dedans ? mais de quelle manière pour ne pas généré d'erreur ? enfin c'est mon idée .. je ne sais pas si le problème vient vraiment de là ... :/
C_L

C_L Le 22 avril 2016 à 19:34

??? HELP :(
C_L

C_L Le 22 avril 2016 à 20:44

Il y à quelque chose de surprenant ... je viens de faire un test '
Concernant le fichier nav exemple :

<?php


$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_GET['id']) AND $_GET['id'] > 0) {
   $getid = intval($_GET['id']);
   $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
   $requser->execute(array($getid));
   $userinfo = $requser->fetch();
   
   
     
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">

<head>

</head>

<body>


        <div id="nav">
        
<?php include ("config.php") ; ?>
        
<li> <a href="<?php echo ROOT_PATH.'/index.php?id='.$_GET['id']; ?>"" class="titre"> ACCUEIL  </a></li>
<li> <a href="<?php echo ROOT_PATH.'/2.APERITIFS/pageaperitif.php?id='.$_GET['id']; ?>"" class="titre"> APERITIFS  </a></li>
<li> <a href="<?php echo ROOT_PATH.'/3.ENTREES/pageaperitif.php?id='.$_GET['id']; ?>"" class="titre"> ENTREES  </a></li>



<li><a href="<?php echo ROOT_PATH.'/index.php'; ?>" class="titre"> ACCUEIL </a></li>
<li><a href="<?php echo ROOT_PATH.'/2.APERITIFS/pageaperitif.php'; ?>" class="titre"> APERITIF</a></li>
<li><a href="<?php echo ROOT_PATH.'/3.ENTREES/pageentree.php'; ?>" class="titre"> ENTREES</a></li>
<li><a href="<?php echo ROOT_PATH.'/9.PLATS/pageplat.php'; ?>" class="titre"> PLATS</a></li>
<li><a href="<?php echo ROOT_PATH.'/4.DESSERTS/pagedessert.php'; ?>" class="titre"> DESSERTS</a></li>
<li><a href="<?php echo ROOT_PATH.'/5.ESPACEPERSO/formulaireinscription.php'; ?>" class="titre"> UNE RECETTE?</a></li>    
        

            

    </div>
<img src="IMAGES/header.png" class="headerimg" alt="header" width="940px" height="88px"> 


</body>
</html>
<?php 
}
?>

Vous voyez j'ai crée trois lien au début pour dire de récuperer mon ID.
Mais à cause de ses liens, je ne vois plus mon menu s'afficher dans ma page : /
Et quand je les enlève de mon code, qu'ensuite je me connecte et je les ajoute à nouveau, je vois QUE les trois liens s'afficher et donc garder mon id.
Dans ce cas, je pense qu'il faudrait crée une fonction php , afficher menu1 quand pas connecté , et menu2 quand connecté non ? Aurez vous uneidée de la syntaxe svp :  ) ou peut être une solution plus simple ... ??
Wistaro

Wistaro Le 22 avril 2016 à 21:04

Si tu mets dans ta variable de session le login, ton code pourrais donner ça :
<?php
session_start();
if(!isset($_SESSION['login']) OR empty($_SESSION['login'])){
//affiche menu offline
}else{
//affiche menu online
}
?>
Ce code doit être mis sur ta page avant tout envoi de header (code html ou echo,print, printf,print_r).


Pour debugguer ton problème de sessions: 
~ Vérifie que tu n'a pas oublié une fois le session_start ()
~Verifie que ton session_start() est mis avant tout envois de header.

Autrement tu peux faire un 
session_start();
echo '<pre>';
print_r($_SESSION);
echo '<pre>';

En début de tes pages qui posent problème pour essayer de voir d'où vient le souci.
C_L

C_L Le 22 avril 2016 à 22:20

De cette façon  ??? :

<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');

if(isset($_GET['id']) AND $_GET['id'] > 0) {
   $getid = intval($_GET['id']);
   $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
   $requser->execute(array($getid));
   $userinfo = $requser->fetch();
   
   
     
?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">

<head>

</head>

<body>


        <div id="nav">
        
<?php include ("config.php") ; ?>
        
        <?php
session_start();
if(!isset($_SESSION['login']) OR empty($_SESSION['login'])){

<li> <a href="<?php echo ROOT_PATH.'/index.php?id='.$_GET['id']; ?>" class="titre"> ACCUEIL  </a></li>
<li> <a href="<?php echo ROOT_PATH.'/2.APERITIFS/pageaperitif.php?id='.$_GET['id']; ?>" class="titre"> APERITIFS  </a></li>
<li> <a href="<?php echo ROOT_PATH.'/3.ENTREES/pageaperitif.php?id='.$_GET['id']; ?>" class="titre"> ENTREES  </a></li>

}else{

<li><a href="<?php echo ROOT_PATH.'/index.php'; ?>" class="titre"> ACCUEIL </a></li>
<li><a href="<?php echo ROOT_PATH.'/2.APERITIFS/pageaperitif.php'; ?>" class="titre"> APERITIF</a></li>
<li><a href="<?php echo ROOT_PATH.'/3.ENTREES/pageentree.php'; ?>" class="titre"> ENTREES</a></li>
<li><a href="<?php echo ROOT_PATH.'/9.PLATS/pageplat.php'; ?>" class="titre"> PLATS</a></li>
<li><a href="<?php echo ROOT_PATH.'/4.DESSERTS/pagedessert.php'; ?>" class="titre"> DESSERTS</a></li>
<li><a href="<?php echo ROOT_PATH.'/5.ESPACEPERSO/formulaireinscription.php'; ?>" class="titre"> UNE RECETTE?</a></li>    
}
?>



    </div>
<img src="IMAGES/header.png" class="headerimg" alt="header" width="940px" height="88px"> 


</body>
</html>
<?php 
}
?>
Mais j'ai une erreur :( >>>Parse error: syntax error, unexpected '<' in C:\wamp\www\CNAM\PAGES040415\nav.php on line 32
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte