Déconnexion de codeigniter
J'ai une déconnexion contrôleur dans codeigniter :
<?php
class Logout extends MY_Controller {
function index()
{
$this->session->sess_destroy();
redirect('index.php');
}
}
Ce connecte moi, mais quand je l'appelle un autre contrôleur après la connexion, comme "/site/addnewpost",
cette session à moi de nouveau, comme si le sassion n'avait pas été détruit précédemment. Pourquoi est-ce arrivé?
- suppression de la redirection. faire un autre script qui contient uniquement
var_dump($_SESSION)
et appeler ce script après la connexion pour vérifier si la session est vraiment détruit - qu'est-ce que votre login partie? (dans laquelle vous vérifier pour la session)
- Corrigez-moi si je me trompe, mais j'ai pensé que CodeIgniter ne pas utiliser le natif de session PHP.
- vous avez raison, $_SESSION ne sera pas sûrement être définie ici comme CI doens pas l'utiliser. J'espère que l'OP n'est pas en les mélangeant à la fois trop!
- ah, my bad. J'utilise Codeigniter, mais toujours utiliser
$_SESSION
manuellement. N'étais pas au courant de CI gère ses propres variables de session
Vous devez vous connecter pour publier un commentaire.
Suivez ALex suggestion, mais en utilisant un code de CI:). Ce que je veux dire, essayez de désactiver chaque session de données individuellement. J'ai lu une fois sur un problème dans la version 2.0.3 je pense, mais je ne me souviens pas maintenant, et je n'ai pas de temps à chercher la référence. C'est dans leur forum, bien que, et la suggestion est le même: unset chaque élément de session, un par un.
Vous besoin pour rediriger à cause de CI de session sont juste des cookies, pas le php natif du tableau de session.
Autre chose...assurez-vous que la faute n'est pas dans vos méthodes d'authentification, qui vous connecte à n'importe si vous avez réussi à déconnecter ou pas!
Essayer explicitement supprimer des éléments comme ceci:
Mon problème venait de la mise en cache côté serveur. Le moyen le plus rapide que je pourrais corriger ce fut en ajoutant du texte aléatoire pour le lien de déconnexion:
maison/déconnexion contenait le même code que
function index
dans la question.Juste pour que vous sachiez la
redirect('/', 'refresh')
ne fonctionne pas pour moi, mais j'ai de nouveau j'ai fait un test rapide.Je suppose que l'
random_string()
méthode peut être remplacé par de la sortie des en-têtes de la force de cache est effacé etc. Comme vous l'avez probablement deviné, je ne peux pas faire ça maintenant que je suis super occupé. Peut-être plus tard.Vous pouvez également essayer de régler manuellement votre "logged_in" ou tout ce que vous avez appelé à la session de faux. Puis, en détruisant toutes les autres données de la session.
nous devons d'abord chargement d'une session de la bibliothèque pour faire face à la session de désactiver l'id de session et de détruire la session. J'utilise ce code pour annuler ma session et sûr de déconnexion.