Ticket #2878 (closed defeito: fixed)

Opened 7 years ago

Last modified 7 years ago

"ExpressoAdmin - Total de Sessões" não está funcionando

Reported by: joaquim.ferraz Owned by: cristiano
Priority: baixa Milestone: Expresso 2.4.2
Component: ExpressoAdmin Version: trunk
Severity: insignificante Keywords:
Cc: WorkGroup:

Description (last modified by douglas) (diff)

Após ter instalado a versão 2.4 estável em um Debian 6.0.5 Squeeze a opção "ExpressoAdmin → Exibir Sessões" não contabiliza nada, apenas mostra o resultado 0. Segue imagem anexo para melhor visualização.

Ticket da Prognus:  #3065.

Attachments

Sesssao.png Download (8.0 KB) - added by joaquim.ferraz 7 years ago.

Change History

Changed 7 years ago by joaquim.ferraz

comment:1 Changed 7 years ago by douglas

  • Milestone changed from Expresso 2.4.1 to Expresso 2.4.2

comment:2 Changed 7 years ago by douglas

  • Owner changed from ninguem to cristiano
  • Milestone changed from Expresso 2.4.2 to Expresso 2.5.0

comment:3 Changed 7 years ago by douglas

  • Description modified (diff)

comment:4 Changed 7 years ago by cristiano

  • Status changed from new to closed
  • Resolution set to fixed

comment:5 Changed 7 years ago by filipe.braga

Apliquei o patch e testei no expresso 2.2.10 e no expresso 2.4, porem nao funcionou... Existe alguma configuração extra no ambiente que pode está afetando?

comment:6 Changed 7 years ago by eduardow

  • Milestone changed from Expresso 2.5.0 to Expresso 2.4.2

comment:7 Changed 7 years ago by cristiano

Felipe, não é nescesaria nenhuma configuração adicional.

Para enternder melhor o problema do ticket, a session salva seus dados em um formato propio que nada mais é as possiões do array separadas pelo nome da Index e | seguido dos dados serializados no casso a index que tem as informações da sessão se chama "phpgw_session|".
Anteriormente o script sempre assumia que o "phpgw_session|" estava no inico da session então o codigo ficava assim

$session = unserialize(substr($session,14));

Porem com novos dados adicionados na session o phpgw_session| deixou de ser o inicio da session para corrigir isto eu apenas troquei o

$session = unserialize(substr($session,14));

para

$session = unserialize(substr($session,(strpos($session, 'phpgw_session|') + 14))); 

onde "(strpos($session, 'phpgw_session|')" vai procurar a possição do phpgw_session| e ae sim pular 14 possições para achar o dado serializado.

Note: See TracTickets for help on using tickets.