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

Variáveis De Sessao Que Expiram


Halfar

Pergunta

Fiz um programa de cadastro que contem variaveis de sessão. Os dados recuperados do formulário são armazenados em variáveis de sessão e gravados no BD. Ocorre que, não entendemos o por que, de repente os dados não são mais gravados no BD, fica lá um campo em branco. Discutindo o assunto com colega da área, ele achou que, como as variaveis de sessão tem um tempo de vida, elas geralmente expiram em 20 minutos, então durante estes 20 minutos os dados são gravados, mas passado este tempo, como as variaveis expiraram, então cadastrou-se registros em branco.

Bem, esta foi a opinião dele, mas eu particularmente não concordo pelo seguinte motivo.

O programa tem duas paginas, uma do formulario, e outra que executa o codigo para gravar o registro.

No topo de ambas as páginas existem as declarações de inicio de sessão, assim:

<?

session_start();

session_register("xCadIndNI");

session_register("xCadAnoNI");

session_register("xCadMesNI");

session_register("Erro");

session_register("Senha_session");

session_register("NIAno");

?>

Note que no inicio deste codigo existe o session_start, onde a sessão está sendo iniciada. Este codigo está presente em ambas as páginas, na do formulário e na página que executa o acesso ao banco para gravar os registros. Oras, se session_start inicia uma sessão, então toda vez que a página é executada é iniciada uma nova sessão, então o contador de tempo zera, pois a cada inserção de novo registro a sessão é iniciada novamente.

Então, pergunto se alguém já teve este tipo de problema ou se poderiam dizer algo a respeito.

obrigado.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Tirado do manual do php.

Nota: Apartir do PHP 4.3.3, usar session_start() quando a seção já tiver sido iniciada irá resultar em um erro de nível. E_NOTICE. Também, o segundo início de seção será simplesmente ignorado.

Isso diz que se você chamar varias sessoes em seguencia, o sistema cria na primeira chamada, e ignora as outras, mas se você demorar muito entre uma chamada e outra, a sessao expira e uma nova é criada, e que provoca a perda das infomações.

Link para o comentário
Compartilhar em outros sites

  • 0

Ola,

fiquei meio na dúvida. Veja só, seu eu coloco o start na primeira página, aí o usuario clica no botao e é processada a segunda página, que volta logo em seguida para a primeira pagina. Como nesta primeira página tem o start da sessão, então o que ocorre ? É criada uma nova sessão? E se não for criada ela vai expirar? E neste caso, como criarei uma segunda chamada de sessão?

Link para o comentário
Compartilhar em outros sites

  • 0
Ola,

fiquei meio na dúvida. Veja só, seu eu coloco o start na primeira página, aí o usuario clica no botao e é processada a segunda página, que volta logo em seguida para a primeira pagina. Como nesta primeira página tem o start da sessão, então o que ocorre ? É criada uma nova sessão? E se não for criada ela vai expirar? E neste caso, como criarei uma segunda chamada de sessão?

Olhá so, o session_start(); deve ser colocado em toda página que for usar a sessção, o que o sistema faz e quando ele encontra um session_start(); e ferificar se uma sessão já existe, se existir ele pega o que tiver gravado la, se não tiver nenhunha sessão ai ele a cria.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...