Bonsoir,
Oula mon pauvre, tu te compliques beaucoup la tâche.
Je te propose une autre aproche: passer le chemin du dossier à afficher via l'url et construire le fil d'ariane depuis là (donc sans utiliser les sessions).
par exemple on appelle: script.php?path=mon/dossier/test
D'abord il faut récupérer le chemin passé en argument. Il faut aussi (je sais pas où tu utilise ce script mais c'est mieux de toute manière) s'assurer qu'on ne puisse pas explorer tout ton serveur avec. Et tant qu'a faire s'assurer qu'il soit toujours présenté de la même manière.
Voici par exemple ce que je ferais pour ça:
// récupérer le chemin
function get_path() {
if(isset($_GET['path'])) {
// vérifier que l'utilisateur n'aille pas n'importe où
$path = $_GET['path'];
$path = str_replace(array('./', '../'), '', $path);
// suprimer un éventuel slash final
if(substr($path, -1) === '/')
$path = substr($path, 0, -1);
// suprimer un éventuel slash au début
if(substr($path, 0, 1) === '/')
$path = substr($path, 1);
}
else {
$path = '';
}
return $path;
}
$path = get_path();
Ensuite il faut ajouter ce qu'on veut avant
$path (par exemple "./contenu/") puis lire et afficher le contenu du dossier (en s'assurant de son existence

)
Dans un 2eme temps il faut construire le fil d'ariane depuis cette même variable
$path. Voici encore un example de fonction qui fonctionnerait avec le résultat de la première.
// construire un fil d'ariane depuis un chemin
function get_ariane($path) {
if(empty($path)) {
return array();
}
// transformer le chemin en tableau
$path = explode('/', $path);
// créer tous les chemins possibles
$ariane = array();
$dir = '';
foreach($path as $newDir) {
$dir = $dir.$newDir; // ajouter le dernier répertoire à la suite
$ariane[] = $dir; // et le mettre dans le fil
$dir .= '/';
}
return $ariane;
}
$ariane = get_ariane($path);
Elle retourne les chemins correspondants à chaque dossier parent il suffit ensuite de parcourir le tableau et de créer les liens html pour chaque élément.
Voilà, il n'y a pas tout mais j'espère assez pour t'aider