Problème Session - ID
- Accueil
- Forum
- Programmation
- PHP
- Problème Session - ID
C_L Le 22 avril 2016 à 18:01 (Édité le 25 janvier 2019 à 17:50)
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
C_L Le 22 avril 2016 à 18:59 (Édité le 1 janvier 1970 à 01:00)
<!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 Le 22 avril 2016 à 20:44 (Édité le 1 janvier 1970 à 01:00)
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 Le 22 avril 2016 à 21:04 (Édité le 1 janvier 1970 à 01:00)
<?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 Le 22 avril 2016 à 22:20 (Édité le 1 janvier 1970 à 01:00)
<?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