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

(Resolvido) Verificador de sessão


D31v1d1

Pergunta

"RESOLVIDO!

Post editado caso alguém precise de algo parecido o código abaixo está funcionando redondinho!"

Boa noite!

Preciso de ajuda, sou novo em php e estou me batendo para fazer o sistema de login, tenho uma página

index.php que tem este form de envio do login e senha

<form action="inc/login_vai.php" method="post">
              <tr>
                <td height="22" colspan="3" valign="top" align="left"><input name="login" type="text" id="login" class="entrada" value="Digite seu usúario" size="20" maxlength="20" /></td>
              </tr>
              <tr>
                <td width="88" height="22" valign="top"><input name="senha" type="password" id="senha" class="entrada" value="*****" size="14" /></td>
                <td width="36" valign="top"><input type="submit" name="entrar" value="OK" style="cursor: pointer;" class="bt2" id="entrar" /> </td>
                <td width="36" valign="top"> </td>
              </tr>
              <tr>
                <td height="12" colspan="3" align="left"><a href="#">Recuperar senha</a></td>
              </tr>
              <tr>
                <td height="20" colspan="3" align="left"></td>
              </tr>
            </form>
e tenho essa que verifica o login e senha se é valido ou não, se é valido ele passa para o arquivo _index2.php que é o painel do sistema, pelo que vejo essa página já cria a sessão também correto? login_vai.php
<?php
// Conexão com o banco de dados
require("conecta.inc");

// Inicia sessões
session_start();

// Recupera o login
$login = isset($_POST["login"]) ? addslashes(trim($_POST["login"])) : FALSE;
// Recupera a senha, a criptografando em MD5
$senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE;

// Usuário não forneceu a senha ou o login
if(!$login || !$senha)
{
    echo "Você deve digitar sua senha e login!";
    exit;
}

/**
* Executa a consulta no banco de dados.
* Caso o número de linhas retornadas seja 1 o login é válido,
* caso 0, inválido.
*/
mysql_select_db("inove",$conexao);
$consulta = "SELECT id, data, nome, login, senha, empresa, site FROM usuarios WHERE login = '" . $login . "'";
$resultado = mysql_query($consulta,$conexao) or die("Erro no banco de dados!");
$total = @mysql_num_rows($resultado);

// Caso o usuário tenha digitado um login válido o número de linhas será 1..
if($total)
{
    // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
    $dados = @mysql_fetch_array($resultado);

    // Agora verifica a senha
   if(strcmp($senha, $dados["senha"]) == 0)
    {
        // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário
        $_SESSION["login"] = stripslashes($dados["login"]);
        $_SESSION["senha"] = $dados["senha"];
        $_SESSION["nivel"] = $dados["nivel"];        
        header("Location: ../_index2.php");
        exit;
    }
    // Senha inválida
    else
    {
        echo "Senha inválida!";
        exit;
    }
}
// Login inválido
else
{
    echo "O login fornecido é inexistente!";
    exit;
}
?>
Alterei o arquivo e agora o meu _verifica ficou da seguinte maneira abaixo, está verificando mas não está deixando eu logar só está apresentando a mensagem "Voçê não efetuou login!" _verifica.php
<?php

session_start();
if (isset($_SESSION["login"]) AND isset($_SESSION["senha"])) {
$login = $_SESSION["login"];
$senha = $_SESSION["senha"];
}else{
echo "Você não efetuou o login.";
exit();/*caso não tinha session.. quer dizer.. ele não logou*/
} /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis… para fazermos os testes!*/

if(!(empty($login) OR empty($senha)))
{
//acessa ao banco de dados
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("inove");
$resultado = mysql_query("SELECT * FROM usuarios WHERE login = '$login'");
if (mysql_num_rows($resultado) == 1)/*caso exista esse login.. vamos testar a senha então*/
{
if ($senha != mysql_result($resultado, 0, "senha"))
{
unset ($_SESSION["nome"]);/*apaga a session que existia mas era errada..*/
unset ($_SESSION["sehna"]);
header("Location: index.php");
exit();
}
}else {
unset ($_SESSION["nome"]);
unset ($_SESSION["sehna"]);
header("Location: index.php");
exit();
}

}else{
header("Location: index.php");
exit();/*caso das sessions estarem vazias*/
}
mysql_close($conexao);

?>

alguém pode me ajudar a fazer esse código funcionar corretamente?

Obrigado e até mais

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

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,4k
×
×
  • Criar Novo...