J'essaie d'utiliser des sessions en php et ne pas aller très loin. Toutes mes pages php sont appelées via ajax à partir d'une seule «page de portail». Je stocke des informations entre les appels ajax en utilisant des sessions. J'ai un fichier d'inclusion qui est le premier fichier dans chaque page ajax qui a session_start comme tout premier appel de méthode. Les données de session semblent être sauvegardées correctement. Cependant, j'ai un problème pour me débarrasser de la session quand j'en ai fini avec la page de déconnexion de l'utilisateur. La page est une page fermeture de session ajax qui fait essentiellement ceci:PHP ne perd pas les données de session après session_destroy
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,$params["path"], $params["domain"], $params["secure"], $params["httponly"]);
}
//code to unset session variables
session_destroy();
si je tente d'écrire une variable de session à l'écran sur la page de fermeture de session est vide comme on peut s'y attendre. Toutefois, si j'actualise la page du portail et affiche l'identifiant session_id à l'écran, il s'agit du même identifiant que celui de la dernière session qui aurait été détruite. Si je ferme le navigateur et l'ouvre à nouveau j'ai une nouvelle session
le cookie de session de php est toujours dans les cookies de navigateur après que la page de déconnexion ait été appelée. Naturellement, une actualisation de page chargera ce cookie. Pourquoi le cookie n'est-il pas supprimé? Est-ce que mon code est défectueux ou est-ce quelque chose à voir avec le fait qu'il s'agit d'une page ajax?
Pourquoi y installez-vous un cookie? et pourquoi appelez-vous '$ _SESSION = array();'? – kelunik
Se pourrait-il que vous ayez encore enregistré l'ID de session dans l'url ou dans un champ de formulaire masqué? –
Êtes-vous sûr de ne pas être programmeur? –