Main Contents

[PHP] CodeIgniter, session et Ajax

juillet 19, 2013

Si vous utilisez CodeIgniter et les sessions (en BDD), il vous ai peut être déjà arrivé de perdre les infos en faisant une requête Ajax. Et bien c’est parceque lors de cette requête la table session est mise à jour, mais le cookie pas modifiée.
Voilà la solution

Dans application/config/constant.php rajoutez :

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

Dans application/libraries/ créer MY_Session.php et rajoutez :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
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!
       if ( !IS_AJAX )
       {
           parent::sess_update();
       }
    } 
 
}

Et le problème est résolu

Catégorie(s): Développement, Tutorial, Web | Comments (0)

Leave a comment