Changeset 2329


Ignore:
Timestamp:
03/23/10 16:37:27 (14 years ago)
Author:
niltonneto
Message:

Ticket #926 - Corrigido validação de sessão em requisições AJAX.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/header.session.inc.php

    r2067 r2329  
    11<?php 
    2         if ( isset( $_COOKIE[ 'sessionid' ] ) ) 
    3                 session_id( $_COOKIE[ 'sessionid' ] ); 
     2        session_start( ); 
     3        $sess = $_SESSION[ 'phpgw_session' ]; 
     4    $connection_id = "{$sess['session_id']}{$sess['session_ip']}".substr($_SERVER[ 'HTTP_USER_AGENT' ],0,199); 
     5  
     6        if ( empty($_SESSION['phpgw_session']['session_id']) || 
     7                ($_SESSION['connection_db_info']['user_auth'] && implode('',$_SESSION['connection_db_info']['user_auth']) !== $connection_id) 
     8        ) 
     9        { 
     10                if($_SESSION['connection_db_info']['user_auth'] && !strstr($_SERVER['SCRIPT_URL'],"/controller.php")) 
     11                        error_log( '[ INVALID SESSION ] >>>>' . implode('',$_SESSION['connection_db_info']['user_auth']) . '<<<< - >>>>' . $connection_id . '<<<<', 0 ); 
    412 
    5         session_start( ); 
    6  
    7         $sess = $_SESSION[ 'phpgw_session' ]; 
    8         $connection_id = "{$sess['session_id']}{$sess['session_ip']}".substr($_SERVER[ 'HTTP_USER_AGENT' ],0,199); 
    9  
    10  
    11         if ($_SESSION['connection_db_info']['user_auth'] && implode('',$_SESSION['connection_db_info']['user_auth']) !== $connection_id) 
    12         { 
    13                 error_log( '[ NOT VALIDATED SESSION ] >>>>' . implode('',$_SESSION['connection_db_info']['user_auth']) . '<<<< - >>>>' . $connection_id . '<<<<', 0 ); 
    1413                setcookie("PHPSESSID","",0); 
    1514                setcookie ("sessionid","",0);    
    16                 require_once dirname( __FILE__ ) . '/logout.php'; 
    17                 exit; 
     15                unset($_SESSION); 
     16                // Retorna "nosession" quando for requisições do ExpressoAjax 
     17                if(strstr($_SERVER['SCRIPT_URL'],"/controller.php")){ 
     18                        echo serialize(array("nosession" => true)); 
     19                        exit; 
     20                } 
     21        } 
     22        else{ 
     23                // Keep Alive session user. 
     24                if ( isset( $_COOKIE[ 'sessionid' ] ) ) 
     25                        session_id( $_COOKIE[ 'sessionid' ] ); 
     26                $_SESSION['phpgw_session']['session_dla'] = time(); 
    1827        } 
    1928?> 
Note: See TracChangeset for help on using the changeset viewer.