vagnerC 0 Denunciar post Postado Janeiro 18, 2010 Boa Tarde pessoas, Estou com a seguinte dificuldade: Tenho um formulário, para acessar este formulário o usuário tem que estar logado no sistema, os dados do usuário ficam salvos em uma sessão. As vezes o que acontece é: o usuário fica muito tempo sem usar o sistema e a sessão é perdida. Ai ele salva os dados e o nome dele não aparece no banco, devido a falta de sessão. Gostaria de sempre verificar se existe a sessão, caso não existe o usuário será remetido para a tela de login. Mas esta verificação tem que ser automatica, e caso existe a sessão tem que manter os dados do formulário. Alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Janeiro 18, 2010 Quando voce inicia a session você deve estar tambem usando uma variavel de sessao, exemplo: $_SESSION['user'] ou alguma outra que voce usa para testar se o cara estar logado. No começo do teu codigo voce bota: <?php if (empty($_SESSION['user'])) header('Location: acesso.php?acao=Logout'); ?> <?php //Aqui voce vai dar unset nas variaveis da sessao por garantia, seria a mesma pagina que você utiliza para fazer logout. ?> Atenção você nao pode ter nenhuma saida antes do codigo 'header' Compartilhar este post Link para o post Compartilhar em outros sites
vagnerC 0 Denunciar post Postado Janeiro 18, 2010 Eu faço assim: if (!isset($_SESSION['cursando'])) { header("Location: index.php"); } Mas não é bem isso que eu gostaria, gostaria que de tempo em tempo ele verificasse se existe a sessão, entende? Tipo: de 20 em 20 minutos, o programa verificar se a sessão está ativa, caso não ir para a tela do LOGIN. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Janeiro 18, 2010 Isso você faz com Cookies, delimita um tempo para ele. Quando o tempo acabar, ao entrar na página irá ir para tela de login. Compartilhar este post Link para o post Compartilhar em outros sites
vagnerC 0 Denunciar post Postado Janeiro 22, 2010 Se eu fizer com cookies ao dar o tempo ele vai remeter para a tela do LOGIN, mas eu quero que ele só remeta caso não exista a seção, devido a falta de interação do usuário. Tipo: O usuário saiu do PC por 20 minutos, ao voltar para o computador a mensagem deverá ser algo do tipo: Você ficou muito tempo sem utilizar o 'sistema', faço o LOGIN novamente. Essa mensagem e o redirecionamento terá que ser automático. Compartilhar este post Link para o post Compartilhar em outros sites
andrearruda 0 Denunciar post Postado Janeiro 22, 2010 De uma olhadinha na documentação http://www.php.net/manual/pt_BR/ref.session.php session_cache_expire — Retorna o prazo do cache atual session_cache_limiter — Obtém e/ou define o limitador do cache atual Compartilhar este post Link para o post Compartilhar em outros sites
tarilonte 0 Denunciar post Postado Janeiro 22, 2010 Pelo que entendi, o usuário se loga e acessa a tela do formulário, então se afasta do computador deixa a tela lá, parada. Nesse meio tempo a sessão expira porém a tela permanece exibindo o formulário. Aí o usuário volta, preenche o formulário, mas quando envia, as informações não são gravadas pois a sessão expirou, e o usuário perde tudo que foi digitado. Bem, Ser for essa a situação, a solução pode estar em um contador javascript que redirecione para a página de login após X segundos sem atividade (atividade como um evento onClick, por exemplo). E a cada atividade, o contador é zerado. Dessa forma, Ao se afastar do computador, o usuário se depara com a tela de login após o período determinado. Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Janeiro 22, 2010 Você tem que verificar se a sessão existe antes de enviar os dados para o banco. if(isset($_SESSION["sessao"])) { envia os dados... } else { manda para a página de login.. } Compartilhar este post Link para o post Compartilhar em outros sites