diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index a0e47f3f107921d806f676ec21d98318260600d5..f39006782164de8a0bafeb0d400b48e7c13a0c2a 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -3070,7 +3070,7 @@ function url_absolue_css($css) {
 function table_valeur($table, $cle, $defaut = '', $conserver_null = false) {
 	foreach (explode('/', $cle) as $k) {
 
-		$table = is_string($table) ? @unserialize($table) : $table;
+		$table = (is_string($table) ? @unserialize($table) : $table);
 
 		if (is_object($table)) {
 			$table = (($k !== "") and isset($table->$k)) ? $table->$k : $defaut;
@@ -3078,10 +3078,11 @@ function table_valeur($table, $cle, $defaut = '', $conserver_null = false) {
 			if ($conserver_null) {
 				$table = array_key_exists($k, $table) ? $table[$k] : $defaut;
 			} else {
-				$table = isset($table[$k]) ? $table[$k] : $defaut;
+				$table = ($table[$k] ?? $defaut);
 			}
 		} else {
 			$table = $defaut;
+			break;
 		}
 	}
 
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index e843138a4e84103c6fb6aea56601320a4f117a54..167125f2eef499af843fb82090fa67383c01b7c8 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -1367,11 +1367,11 @@ function balise_ENV_dist($p, $src = null) {
 		if ($src) {
 			$p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
 		} else {
-			$p->code = '@serialize($Pile[0])';
+			$p->code = 'serialize($Pile[0]??[])';
 		}
 	} else {
 		if (!$src) {
-			$src = '@$Pile[0]';
+			$src = '$Pile[0]??[]';
 		}
 		if ($_sinon) {
 			$p->code = "sinon(table_valeur($src, (string)$_nom, null), $_sinon)";
@@ -1481,7 +1481,7 @@ function balise_SESSION_dist($p) {
 		? 'balise_ENV'
 		: 'balise_ENV_dist';
 
-	$p = $f($p, '$GLOBALS["visiteur_session"]');
+	$p = $f($p, '$GLOBALS["visiteur_session"]??[]');
 
 	return $p;
 }
@@ -2172,9 +2172,9 @@ function balise_SET_dist($p) {
 function balise_GET_dist($p) {
 	$p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
 	if (function_exists('balise_ENV')) {
-		return balise_ENV($p, '$Pile["vars"]');
+		return balise_ENV($p, '$Pile["vars"]??[]');
 	} else {
-		return balise_ENV_dist($p, '$Pile["vars"]');
+		return balise_ENV_dist($p, '$Pile["vars"]??[]');
 	}
 }