Ir para conteúdo
Fórum Script Brasil
  • 0

Perda De Referência Da Session


fnorte

Pergunta

Olá Pessoal,

Fiz uma pesquisa an passant aqui no fórum, mas realmente acho que meu problema é meio atípico.

Possuo um sistema que está sendo acessado simultanamente por várias pessoas. Para tanto eu mantenho o registro do usuário em Session para que eu possa ter controle de quem inclui ou alterou coisas em meu banco de dados.

O Valor do código do usuário gravado na session é passado dentro das queries para serem gravados nas tabelas. Só que seguindo a recomendação da PHP ao invés de usar session_registered, session_ETC... eu uso a declaração das variáveis como $_SESSION e a leitura TAMBÉM, sempre.

Até aí tudo bem, só que, por algum motivo estranho, as vezes um ou outro registro não grava o código do usuário.

Explicando melhor:

- Cada usuário que entra no sistema tem o seu código (ID) que é gravado na $_SESSION['user_id'], quando ele executa o login.

- Em seguida ele entra com uma lista de dados sequenciados no sistema. Digitadores entrando vários e vários relatórios a cada 2 minutos. São cerca de 1000 digitadores entrando contratados, e acaba tendo uma média de 50 acessos simultâneos.

- A Validação do usuário se dá através dessa mesma váriavel. A cada visita a página de inclusão e a página de registro dos dados há uma validação que em caso da $_SESSION['user_id'] Não esteja setada (!isset), seja igual a vazio (== '') ou igual a zero (== 0) ele retorne para a página de login e destrua qualquer outra sessão existente.

- A cada registro gravado, é inserido ,além dos dados, o código do usuário na tabela de referência, passando o valor do $_SESSION['user_id'].

- Só que ao listar os usuários, cerca de 10% deles estão com o código igual a ZERO. Ao checar o horário da entrada e o IP do sujeito percebo que foi aleatoriamente entre uma pesquisa e outra, e não TODA a sequencia.

O que pode estar acontecendo para que haja essa SELEÇÃO natural do regsitro, pois ele grava os dados, o sujeito não é retirado do sistema por causa do ID vazio, mas ele grava o dado como 0.

Tem um detalhe fundamental que talvez seja até mesmo a raiz do meu problema: Temporariamente esse sistema está rodando num Windows 2003 Server, com Apache... Eu sei que é trágico mas espero que seja temporário.

Minhas hipóteses são:

- Concorrencia de usuários

- Tempo de leitura da session armazenada no hd pequeno

- Windows

- Forças do Mal

- Olho Gordo

- Uma cabeça de burro enterrada na minha sala.

Se alguém passou por bizarrice semelhante me dê uma LUZ.

Muito obrigado,

Fernando Norte

Bhte - MG

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Cara, ainda n passei por isso, nem quero passar... longe de mim haiuhaiuhuai

Eu estou entre tempo de leitura curto e cabeça de burro enterrada na tua sala... mas por via das dúvidas da uma olhadinha no php.ini ve se tu consegue aumentar... se for só pesquisar olha a phpinfo(); q é menos perigoso... hehehe

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...