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

(Resolvido) Session não é destruida com o logout


geogetrindade

Pergunta

Olá a todos, já a algum tempo tento resolver os problemas por conta própria mas não da mesmo mim cadastrei no fórum pra ver se alguém tem a gentileza de mim ajudar nisso, já que eu mim esforço mas não entendo quase nada de php, vale dizer que visitei diversos fóruns, sites de dicas, codsnippets e tutoriais pra tentar aprender mas sem sucesso pra esse problema, e eu fico :wacko: pirado quando o problema parece ser simples mas eu nem consigo corrigir, nem encontro na net quem faça essa joça funcionar, então dessa vez vamos ver se aqui eu consigo não é? rs :).

O objetivo é detonar com a sessão.

O código está aqui explicado ao máximo que pude:

<?php
session_start();                        //DIZ AO SERVIDOR QUE IRÁ TRABALHAR COM SESSIONS
if (isset($_POST['logout']))           //VERIFICA SE LOGOUT FOI CHAMADO
{                                     //INÍCIO DO BLOCO A SER EXECUTADO SE O LOGOUT FOI CHAMADO ###
$_SESSION = array();                 //REINICIALIZA SESSION
$_SERVER["passwords"]   = null;     //ZERA ESSA VARIAVEL
session_unset();                   //MATA AS VARIAVEIS DA SESSION
session_destroy();                //ELIMINIA(REINICIALIZA) SESSION
header("Location: index.php");   //REDIRECIONA PARA O LOGIN
exit();                         //PARA EXECUÇÃO DO SCRIPT..........................
}                              //FIM DESSE BLOCO .................................. ###
                              //\\Caso logout não foi chamado ele passa a executar a partir daqui
if (isset($_POST['passwords']))//\\Verifica se a senha foi digitadas no formulário.
{                               //\\Executa esse bloco comparando a senha do formulario com a do arquivo.
$login = $_POST['passwords'];    //\\Salva o valor de $_POST numa variável $login para poder comparar.
include "bd.php";                 //\\Carrega o banco de dados.
if( $login != $senha )             //\\Compara as informações que foram digitadas no formulário com a senha correta que está no banco..
{                                   //\\Esse bloco é executado somente se a senha for diferente da que está no banco:
                                     // \\Esse é o painel de login

   echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
   echo "<html>\n";
   echo "<head>\n";
   echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n";
   echo "<title>Autenticação</title>\n";
   echo "</head>\n";
   echo "<body>\n";
   echo "<center>\n";
   echo "<br>\n";
   if($_SERVER['REQUEST_METHOD'] == 'POST')
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FF0000\">Chave de acesso errada!<br><br><br></span>\n";
   else
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\">Use sua chave de acesso.<br><br><br></span>\n";
   echo "<form method=\"post\" action=\"".basename(__FILE__)."\">\n";
   echo "   <table cellspacing=\"0\" cellpadding=\"3\" border=\"0\" bgcolor=\"#FFFFFF\" style=\"border:1px solid #535353;\">\n";
   echo "      <tr>\n";
   echo "         <td colspan=\"2\" bgcolor=\"#535353\" style=\"text-align:center;padding:4px;font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FFFFFF\"><b>Login</b></td>\n";
   echo "      </tr>\n";
   echo "      <tr>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"right\" width=\"30%\" height=\"60\">Chave:</td>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"left\" width=\"70%\" height=\"60\"><input type=\"password\" name=\"password\" value=\"\" style=\"border:1px solid #535353;width:120px;\">  <input type=\"submit\" value=\"Login\"></td>\n";
   echo "      </tr>\n";
   echo "   </table>\n";
   echo "</form>\n";
   echo "</center>\n";
   echo "</body>\n";
   echo "</html>\n";
   exit;
}
     setcookie('$loja', $_POST['passwords'], time() + 3600*24*30); // Tento criar um cookie pra evitar ter que reenviar os dados ao recarregar!!!
}
?>

Aqui vem o código da página restrita que é exibido se a senha estiver correta.

O que ele tem que fazer é logout detonando com a sessão mais ele redireciona para a página index.php e quando eu clico na página restrita ela abre normalmente eu realmente pensei ter corrigido com o código do nosso amigo ursolouco no Link

mais depois percebi que continuava então criei esse tópico para não misturar os casos, espero ter feito o certo

O que vocês acham, onde posso ter errado? desde já obrigado.

Editado por geogetrindade
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá a todos, já a algum tempo tento resolver os problemas por conta própria mas não da mesmo mim cadastrei no fórum pra ver se alguém tem a gentileza de mim ajudar nisso, já que eu mim esforço mas não entendo quase nada de php, vale dizer que visitei diversos fóruns, sites de dicas, codsnippets e tutoriais pra tentar aprender mas sem sucesso pra esse problema, e eu fico :wacko: pirado quando o problema parece ser simples mas eu nem consigo corrigir, nem encontro na net quem faça essa joça funcionar, então dessa vez vamos ver se aqui eu consigo não é? rs :).

O objetivo é detonar com a sessão.

O código está aqui explicado ao máximo que pude:

<?php
session_start();                        //DIZ AO SERVIDOR QUE IRÁ TRABALHAR COM SESSIONS
if (isset($_POST['logout']))           //VERIFICA SE LOGOUT FOI CHAMADO
{                                     //INÍCIO DO BLOCO A SER EXECUTADO SE O LOGOUT FOI CHAMADO ###
$_SESSION = array();                 //REINICIALIZA SESSION
$_SERVER["passwords"]   = null;     //ZERA ESSA VARIAVEL
session_unset();                   //MATA AS VARIAVEIS DA SESSION
session_destroy();                //ELIMINIA(REINICIALIZA) SESSION
header("Location: index.php");   //REDIRECIONA PARA O LOGIN
exit();                         //PARA EXECUÇÃO DO SCRIPT..........................
}                              //FIM DESSE BLOCO .................................. ###
                              //\\Caso logout não foi chamado ele passa a executar a partir daqui
if (isset($_POST['passwords']))//\\Verifica se a senha foi digitadas no formulário.
{                               //\\Executa esse bloco comparando a senha do formulario com a do arquivo.
$login = $_POST['passwords'];    //\\Salva o valor de $_POST numa variável $login para poder comparar.
include "bd.php";                 //\\Carrega o banco de dados.
if( $login != $senha )             //\\Compara as informações que foram digitadas no formulário com a senha correta que está no banco..
{                                   //\\Esse bloco é executado somente se a senha for diferente da que está no banco:
                                     // \\Esse é o painel de login

   echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
   echo "<html>\n";
   echo "<head>\n";
   echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n";
   echo "<title>Autenticação</title>\n";
   echo "</head>\n";
   echo "<body>\n";
   echo "<center>\n";
   echo "<br>\n";
   if($_SERVER['REQUEST_METHOD'] == 'POST')
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FF0000\">Chave de acesso errada!<br><br><br></span>\n";
   else
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\">Use sua chave de acesso.<br><br><br></span>\n";
   echo "<form method=\"post\" action=\"".basename(__FILE__)."\">\n";
   echo "   <table cellspacing=\"0\" cellpadding=\"3\" border=\"0\" bgcolor=\"#FFFFFF\" style=\"border:1px solid #535353;\">\n";
   echo "      <tr>\n";
   echo "         <td colspan=\"2\" bgcolor=\"#535353\" style=\"text-align:center;padding:4px;font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FFFFFF\"><b>Login</b></td>\n";
   echo "      </tr>\n";
   echo "      <tr>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"right\" width=\"30%\" height=\"60\">Chave:</td>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"left\" width=\"70%\" height=\"60\"><input type=\"password\" name=\"password\" value=\"\" style=\"border:1px solid #535353;width:120px;\">  <input type=\"submit\" value=\"Login\"></td>\n";
   echo "      </tr>\n";
   echo "   </table>\n";
   echo "</form>\n";
   echo "</center>\n";
   echo "</body>\n";
   echo "</html>\n";
   exit;
}
     setcookie('$loja', $_POST['passwords'], time() + 3600*24*30); // Tento criar um cookie pra evitar ter que reenviar os dados ao recarregar!!!
}
?>

Aqui vem o código da página restrita que é exibido se a senha estiver correta.
O que ele tem que fazer é logout detonando com a sessão mais ele redireciona para a página index.php e quando eu clico na página restrita ela abre normalmente eu realmente pensei ter corrigido com o código do nosso amigo ursolouco no <a href="http://scriptbrasil.com.br/forum/index.php?s=&showtopic=146862&view=findpost&p=580060" target="_blank"> Link </a> mais depois percebi que continuava então criei esse tópico para não misturar os casos, espero ter feito o certo O que vocês acham, onde posso ter errado? desde já obrigado.
Olá! Pelo que percebo, não tenho certeza, mas acho que é um sistema de login. Que tal usar o LuckeLogin V1, meu sistema de login avançado feito por min mesmo? :rolleyes: Ele usa cookies, que é bem + facil de se manipular. Baixe aí 100% gratis, não leva menos que 5 min para instalação dos scripts, garanto que não vai se decepcionar, baixe-o aqui: LuckeLogin V1 ------------------------------//--------------------------- Agora voltando a sua dúvida, tente substituir seu código atual, por este:
<?php
if (isset($_POST['logout']))           //VERIFICA SE LOGOUT FOI CHAMADO
{                                     //INÍCIO DO BLOCO A SER EXECUTADO SE O LOGOUT FOI CHAMADO ###
$_SERVER["passwords"]   = null;     //ZERA ESSA VARIAVEL
session_start();  
session_unset();                   //MATA AS VARIAVEIS DA SESSION
session_destroy();                //ELIMINIA(REINICIALIZA) SESSION
header("Location: index.php");   //REDIRECIONA PARA O LOGIN
exit();                         //PARA EXECUÇÃO DO SCRIPT..........................
}                              //FIM DESSE BLOCO .................................. ###
                              //\\Caso logout não foi chamado ele passa a executar a partir daqui
if (isset($_POST['passwords']))//\\Verifica se a senha foi digitadas no formulário.
{                               //\\Executa esse bloco comparando a senha do formulario com a do arquivo.
$login = $_POST['passwords'];    //\\Salva o valor de $_POST numa variável $login para poder comparar.
include "bd.php";                 //\\Carrega o banco de dados.
if( $login != $senha )             //\\Compara as informações que foram digitadas no formulário com a senha correta que está no banco..
{                                   //\\Esse bloco é executado somente se a senha for diferente da que está no banco:
                                     // \\Esse é o painel de login

   echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
   echo "<html>\n";
   echo "<head>\n";
   echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n";
   echo "<title>Autenticação</title>\n";
   echo "</head>\n";
   echo "<body>\n";
   echo "<center>\n";
   echo "<br>\n";
   if($_SERVER['REQUEST_METHOD'] == 'POST')
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FF0000\">Chave de acesso errada!<br><br><br></span>\n";
   else
      echo "<span style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\">Use sua chave de acesso.<br><br><br></span>\n";
   echo "<form method=\"post\" action=\"".basename(__FILE__)."\">\n";
   echo "   <table cellspacing=\"0\" cellpadding=\"3\" border=\"0\" bgcolor=\"#FFFFFF\" style=\"border:1px solid #535353;\">\n";
   echo "      <tr>\n";
   echo "         <td colspan=\"2\" bgcolor=\"#535353\" style=\"text-align:center;padding:4px;font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#FFFFFF\"><b>Login</b></td>\n";
   echo "      </tr>\n";
   echo "      <tr>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"right\" width=\"30%\" height=\"60\">Chave:</td>\n";
   echo "         <td style=\"font-size:11px;font-family:Verdana;font-weight:normal;text-decoration:none;color:#535353\" align=\"left\" width=\"70%\" height=\"60\"><input type=\"password\" name=\"password\" value=\"\" style=\"border:1px solid #535353;width:120px;\">  <input type=\"submit\" value=\"Login\"></td>\n";
   echo "      </tr>\n";
   echo "   </table>\n";
   echo "</form>\n";
   echo "</center>\n";
   echo "</body>\n";
   echo "</html>\n";
   exit;
}
     setcookie('$loja', $_POST['passwords'], time() + 3600*24*30); // Tento criar um cookie pra evitar ter que reenviar os dados ao recarregar!!!
}
?>

Aqui vem o código da página restrita que é exibido se a senha estiver correta.

Testaí, Flws!

Link para o comentário
Compartilhar em outros sites

  • 0

OK lucke, obrigado pela atenção cara, visitei seu site, é uma ótima iniciativa parabéns, olha só, coloquei o código que você postou pra mim mais não funcionou, tentei um pouco mas sem sucesso então estou aqui tentando ir por partes sabe vou postar aqui um novo trexo:

<?php
session_start();
$password = '';
if($_SERVER['REQUEST_METHOD'] == 'POST')
{  
   include "bd.php";                                                   // Carrega o banco de dados.
   $password = isset($_POST['password']) ? $_POST['password'] : '';
   if ($password == "$senha")
   {
      $_SESSION['password'] = $password;                 // parece que aqui ele cria uma session
   }
}
else
{
   $password = isset($_SESSION['password']) ? $_SESSION['password'] : '';   //aqui eu não entendo
}
include "bd.php";                                 // de qualquer forma carrego o banco de novo
if ($password != "$senha")                         // confiro se são diferentes
{                                                   //  se for diferente o formulario de senha aparece e o script para
   //Aqui fica apenas o formulario de senha
   exit;
}
 setcookie("$loja", $_POST['passwords'], time() + 3600*24*30); // Tento criar um cookie pra evitar ter que reenviar os dados ao recarregar!!!

?>

É um seguinte quero proteger uma página permitindo um só usuário e a forma de acesso é apenas baseado na senha que fica no bd.php e é comparada com a do painel preciso que fique salvo a session para que ao carregar a página os dados não precisem ser reenviados (aparecendo uma tela chata) e quando fizer logof ele finalize e exija a senha de novo mesmo tentando recarregar a página entende conhece algum script pra isso

estou vendo como funciona seu sistema de login aqui...

Link para o comentário
Compartilhar em outros sites

  • 0

Olá a todos concegui resolver bem o problema graças ao pessoal do criarsites então lá vai o link da página do arquivo

é só baixar de graça e adaptar os scripts foi o único que achei que deu certo para sistemas com banco de dados de texto ou sem banco de dados.

lembrando que esse sistema usa banco de dados de texto com extensão.php

Acredito que possa ser fechado o post porque já está resolvido

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...