NetBoy16 72 Denunciar post Postado Outubro 3, 2012 Olá pessoal, tudo bem ? eu to tendo dificuldade no controle de sessão, tipo, quando o login da certo o codigo que e ativado é esse aqui: if(mysql_num_rows($result) == '0') { $msg = "Erro - Usuario ou Senha inválido !"; } else { session_start(); $_SESSION["login"] = mysql_fetch_assoc($result); header("Location: main.php"); } beleza, mas olha como ta meu codigo de controle de sessao e logout: <?php session_start(); if (!isset($_SESSION['login']) || $_SESSION['login'] !== true) { header('Location: index.php'); exit; } ?> <? session_start(); session_destroy(); session_unset(); echo "<script type='text/javascript'>location.href='index.php';</script>"; ?> Só que tipo, n ta funcionando, oque tem de errado ? Compartilhar este post Link para o post Compartilhar em outros sites
lambrusco 3 Denunciar post Postado Outubro 3, 2012 Sinceramente não entendi o que você ta fazendo. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 3, 2012 Pq tu num faz simplesmente... $_SESSION['login'] = false; Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Outubro 3, 2012 session_start(); deve vir antes de qualquer código que você faça no php. Tem que ser a primeira linha do código <?php session_start(); /* Aqui vem o seu bloco de códigos */ ?> Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Outubro 3, 2012 Mas como você pode ver eu iniciei com session_start() No caso do controle de inatividade, quando eu incluo ele, simplesmente nao abre a outra pagina quando lcico no link, continua na mesma. Jah no caso do logout, quando clico em sair ele vai redirecionar pra index.php mas dai lah checa se ta logado, se tiver manda devota pra main.php, e ele fica fazendo isso, tipo como senão desse um destroy na session. Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Outubro 3, 2012 Esse controle que você quer é feito com session_cache_expire() Não precisa de uma pagina só pra isso. Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Outubro 3, 2012 atualizei de acordo como o Prog disse e deu certo :D logout.php <? session_start(); $_SESSION['login'] = false; session_destroy(); session_unset(); echo "<script type='text/javascript'>location.href='index.php';</script>"; ?> Agora soh falta arrumar o checaLogin.php O meu checaLogin ta assim: <?php session_start(); if (!isset($_SESSION['login']) || $_SESSION['login'] !== true) { $msgsession = "Tempo limite da sessão esgotado !"; header('Location: index.php'); exit; } ?> Como adaptaria esse session_cache_expire() ? Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Outubro 3, 2012 É só ler o que a função faz clicando no link que postei (nome da função sublinhado). Ta em português. Basta usar a função antes do session_start. Ao fim do tempo determinado o cache expira e o login é solicitado novamente. Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Outubro 3, 2012 li lah mas nao entendi como ficaria a parte pra verificar se a session existe e dai caso nao encaminhar pro index.php, pois acredito que ele nao faca isso automaticamente neh ? olha como ficou o codigo agora: <?php session_cache_expire(); session_start(); if (!isset($_SESSION['login']) || $_SESSION['login'] !== true) { $msgsession = "Tempo limite da sessão esgotado !"; header('Location: index.php'); exit; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Outubro 3, 2012 Então leia novamente meu querido mas desta vez com um pouquinho mais de vontade de aprender e menos vontade de terminar seu script sem dar a minima para instrução. No post anterior eu disse "Ao fim do tempo determinado o cache expira e o login é solicitado novamente." Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Outubro 3, 2012 Então leia novamente meu querido mas desta vez com um pouquinho mais de vontade de aprender e menos vontade de terminar seu script sem dar a minima para instrução. No post anterior eu disse "Ao fim do tempo determinado o cache expira e o login é solicitado novamente." Mas eu li e prestei atencao tb nessa parte em negrito, oque me deixou confuso eh: ele expira e volta automaticamente pro index.php ? Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Outubro 3, 2012 Ai depende do seu código. Se a sessão não existir mais, seu código faz oque? Como disse antes a unica coisa a acrescentar é o session_cache_expire(). Os códigos que redirecionam caso a sessão não exista tem de permanecer. Compartilhar este post Link para o post Compartilhar em outros sites
NetBoy16 72 Denunciar post Postado Outubro 3, 2012 oO QUE DOIDO, DEI UMA FUSSADA NO MEU CODIGO E AGORA FICOU DE BOA: <?php session_start(); if (!isset($_SESSION["login"])) { header("Location: index.php"); } ?> ah, esqueci de falar, muito obrigado a todos :D Compartilhar este post Link para o post Compartilhar em outros sites