2011-11-13 2 views
0

Je crée une application web avec le framework codeigniter, je travaille avec la version 2.0.3. My effectue des requêtes ajax pour mettre à jour la page de temps en temps et récupérer des notifications. J'ai visité les forums CodeIgniter et poser des questions sur les sessions de CodeIgniter et ajax et trouvé ce bout de code que j'ai utilisé et enregistré dans les bibliothèques et les classes « My_session.php »Codeigniter utilisateurs de journalisation

class MY_Session extends CI_Session { 

    /** 
    * Update an existing session 
    * 
    * @access public 
    * @return void 
    */ 
    function sess_update() { 
     // skip the session update if this is an AJAX call! This is a bug in CI; see: 
     // https://github.com/EllisLab/CodeIgniter/issues/154 
     // http://codeigniter.com/forums/viewthread/102456/P15 
     if (!($this->CI->input->is_ajax_request())) { 
      parent::sess_update(); 
     } 
    } 
} 

Mais depuis que j'ajouté cette code Je ne peux pas rester connecté pendant plus de cinq minutes sans être déconnecté, ou parfois ne pas pouvoir me connecter du tout. Est-ce que quelqu'un a une expérience similaire?

+0

sont les paramètres de temps sur votre serveur ok? –

+0

@LastRoseStudios Les paramètres de temps sont corrects – MrFoh

+0

utilisez-vous la base de données pour vos sessions? – tgriesser

Répondre

0

Si vous voulez rester connecté plus vous avez défini sess_expiration pendant plus de cinq minutes dans votre application/config/config.php

+0

son ensemble 7200 secondes que deux heures – MrFoh

0

ce qui se passe lorsque vous évaluez le is_ajax_request()? dans cet extrait de code, ajoutez:

echo 'AJAX: ' . $this->CI->input->is_ajax_request(); exit; 

pour voir si l'instruction if fonctionne correctement. il se peut que vous retourniez false et que vous mettiez à jour la session à chaque fois. juste un endroit rapide pour commencer :)

+0

Je vais essayer maintenant – MrFoh

+0

il renvoie "AJAX" – MrFoh

+0

vérifier pour voir si AJAX est == à quelque part dans le cadre, sinon vous besoin d'ajouter ces contrôles, qui sont dans le thread de la lib que vous avez ajouté ou le définir en haut de la lib comme const défini, comme suit: 'define ('AJAX', isset ($ _ SERVER ['HTTP_X_REQUESTED_WITH']) && strtolower ($ _ SERVER ['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); ' –

Questions connexes