Ticket #2878 (closed defeito: fixed)
"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
Change History
comment:2 Changed 12 years ago by douglas
- Owner changed from ninguem to cristiano
- Milestone changed from Expresso 2.4.2 to Expresso 2.5.0
comment:4 Changed 12 years ago by cristiano
- Status changed from new to closed
- Resolution set to fixed
comment:5 Changed 12 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:7 Changed 12 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.