Bonjour,

Je cherche à convertir une variable de session en JS.

Voici le code que j'utilise quand la variable de session est une chaîne de caractère :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<script> var user_id = '<?php if(isset($_SESSION['sess_user_id']) && $_SESSION['sess_user_id'] != "") { echo $_SESSION['sess_user_id']; } ?>'</script>
Le problème est dans le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 <script>var sess_communes = <?php if(isset($_SESSION['sess_communes'])) { echo $_SESSION['sess_communes']; } else '' ?></script>
Le premier cas renvoie une chaîne de caractère alors que le second ramène un objet JSON.

Conséquence : quand une session est ouverte, ça marche nickel, mais dès que l'on se déconnecte l'application est vautrée et la console renvoie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<script>var id_user = '' // cad chaîne vide
var sess_communes = </script> // le code n'est pas fermé
Autrement dit, le code n'est pas fermé.

Comment contourner le problème ? Merci pour vos réponses.

Sylvain



MAJ : Mon code ne semble pas accepter les opérateurs de coalescence :/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
var communes1 = [];
var communes2 = <?php echo $_SESSION['sess_communes'] ?> ?? 'Salut';
 
console.log(communes2);
ne renvoie rien et renvoie même une erreur : 'Unexpected token '??''

Je sais pas trop quoi faire, c'est bloquant et toutes les solutions possibles et imaginables défaillent les unes après les autres....

Merci pour vos retours. Sylvain