Bonjour,
Je ne sais pas si c'est un problème de JS ou de PHP. Je poste ici car j'ai plus l'impression que cela vienne de mon incompréhension du fonctionnement de JS par rapport à d'anciens langages de programmation que j'ai appris il y a... quelques dizaines d'années...

J'ai une page d'accueil.php dans laquelle je valide l'utilisateur via une requête AJAX.
Si c'est ok, je mets le code utilisateur dans une variable php $_SESSION['id'] que je veux utiliser dans la suite du traitement dans d'autres pages.
Si j'en reste là, tout va bien.

Mais, sur cette page accueil, je demande à l'utilisateur de confirmer qu'il s'agit bien de lui.
Sinon, il se déconnecte et je veux RAZ cette variable $_SESSION['id'].
J'ai donc fait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$('#boutDeconnecter').click(function() {
   alert('déconnecter');
   <?php unset($_SESSION['idDuStagiaire']); ?>;
   window.location.href = 'index.php';
});
Il me semble logique que le php unset ne s'exécute que lorsque je clique sur le bouton déconnecter.
Et ben à priori non : si je mets cette ligne, que je ne fait pas déconnecter, je n'ai pas de variable $_SESSION['id'] dans les pages suivantes.
Si j'enlève cette ligne cela fonctionne.

Il semble que cette ligne s'exécute quand même, qu'elle soit dans une condition ou pas (l'alerte "Déconnecter" ne s'affiche pas...

C'est quoi t est ce qui se passe ? Où est mon erreur de logique ?


Nb : peut être est-ce du même ordre que lors de mes différents tests, au lieu de supprimer la ligne php unset, je la commentais en JS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
// <?php unset($_SESSION['idDuStagiaire']); ?>;
Elle semblait s'exécuter quand même...
Si par contre je commente le php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php // unset($_SESSION['idDuStagiaire']); ?>;
Il n'interprète pas la commande, et tout va bien, la variable $_SESSION['id'] existe dans les autres pages... Sauf que c'est pas ce que je veux

Merci pour vos éléments de réponse