2017-09-29 1 views
0

Je suis préoccupé par certains problèmes de session PHP.Problème de session PHP parfois n'est pas enregistré

J'ai une page principale, où je commence la session, et quelques liens vers une deuxième page. Je veux garder une trace des pages (chapelure), donc je les stocke dans la session. Quand je teste, cela fonctionne pour certains, et pas pour d'autres ... je ne vois pas le problème.

Page 1: (index.php)

<?php 
 

 
session_start(); 
 

 
if (!isset($_SESSION['kruimels'])){ 
 
    $_SESSION['kruimels']["home"]="index.php"); 
 
}else{ 
 
    unset($_SESSION['kruimels']); 
 
    array_push($_SESSION['kruimels']["home"]="index.php"); 
 
} 
 

 
?> 
 

 
<a href='sub.php?id=1'>item1</a> 
 
<a href='sub.php?id=2'>item2</a> 
 
<a href='sub.php?id=3'>item3</a> 
 
<a href='sub.php?id=4'>item4</a>

la page Deuxième: (sub.php)

<?php 
 

 
session_start(); 
 

 
/* I get the name of the page by querying the DB...*/ 
 

 
if (isset($_SESSION['kruimels'])){ 
 
    $_SESSION['kruimels'][$nameOfPage]="sub.php?id=".$_GET['id']; 
 
} 
 

 
?> 
 

 
<?php 
 
foreach ($_SESSION['kruimels'] as $naam => $path) { 
 
    echo "<li><a href='$path'>$naam</a></li>"; 
 
} 
 
        
 
?>

La chose étrange est , quelque chose imes il est sauvé, parfois il ne le fait pas ... je ne vois pas le problème ...

Aide? Salutations, Martijn

Répondre

0

vous n'avez pas besoin de démarrer une session pour cela, utilisez juste basename ($ _ SERVER ['REQUEST_URI']); cette fonction de php. Cela vous donnera le nom de votre fichier actuel. Après cela, vous avez obtenu votre nom de fichier et commence maintenant à exploser (.) Et l'écho partout où vous voulez montrer Et que le code ci-dessous Essayez

$pagename = explode('.', basename($_SERVER['SCRIPT_NAME'])); 
       echo $pagename[0]; 
+0

Je veux garder une trace de tous les liens visités. Sur la page secondaire sont également des liens vers la sous-page avec un ID différent. index-> ​​sub-> sub -> ... comme des chapelures. Mais je reçois parfois (pas toujours) index-> ​​sub au lieu de index-> ​​sub-> sub – martok