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

login com sessoes inconsistente


joannes

Pergunta

Olá a todos, o sistema de login que estou trabalhando é em cima de um que peguei meio que pronto e tive que modificar conforme as minhas necessidade, porém tem um erro serio, é assim, a pessoa tem que logar com numero de matricula e senha, se eu colocar numero de matricula e senha diferente não loga, ate ai tudo bem, mas se eu digito uma letra a pessoa loga normal para a conta principal, e isso não pode acontecer. podem me dar uma ajuda?

segue uma esquema do codigo, que é de teste.

 

aqui a pagina de login.php 

<?php
session_start();
// se já existir um usuário logado
if (isset($_SESSION['user'])) {
    // volta pro index
    header('Location: ./');
} elseif (isset($_POST['login'])) {
// conecta ao banco de dados
    include 'app/models/connect.php';
// conecta ao banco de dados
    include 'app/models/model.php';
    // criar a query de busca
$query = "SELECT * FROM usuarios
            WHERE status = 1 
            AND matricula ='$_POST[login]'
            AND senha = MD5('$_POST[senha]')";
    // executar a query
    if (is_array($result = returnArray($query))) {
        $_SESSION['user'] = $result[0];
        header('Location: ./');
    } else {
        $e = "<p class='error'>$result</p>";
    }
}
?>

 

 <form  method="POST" action="valida.php">
                            <table>
                                <tr>
                                    <td>
                                        <img src="assets/imgs/logo.png">
                                    </td>
                                    <td><h1>Sistema de Gestão<br><b>Patrimonial do DEP</b></h1></a></td>
                                </tr>
                                <tr>
                                    <td colspan='2'>
                                        <input type="text" name="txt_usuario" id="txt_usuario" class="form-control" placeholder="login" required autofocus>

                  
                                        <br><br>
                                        <input type="password" name="txt_senha" id="txt_senha" class="form-control" placeholder="Senha" required>
                                        <br><br>
                                        <input type='submit' value='logar'>
                        <?php if(isset($_SESSION['loginErro']))
                                                    {
                            echo $_SESSION['loginErro'];
                            unset ($_SESSION['loginErro']);
                            }
                                                ?>
                                </tr>
                            </table>
                        </form>

---------------------

seguranca.php

<?php
    function seguranca_adm(){
        if((empty($_SESSION['usuarioId'])) && (empty($_SESSION['usuarioMatricula'])) && (empty($_SESSION['usuarioNiveisAcessoId']))){        
            $_SESSION['loginErro'] = "Área restrita";
            header("Location: login.php");
        }else{
            if($_SESSION['usuarioNiveisAcessoId'] != "1"){
                $_SESSION['loginErro'] = "Área restrita";
                header("Location: login.php");
            }
        }
    }
?>

-------------------------------------

valida.php  // pega os dados vindo do login

    session_start();
    include_once("conexao/conexao.php");
    //Verifica se os campos possuem dados 
    if((isset($_POST['txt_usuario']) == ['txt_usuario'] ) && (isset($_POST['txt_senha']))){
        $usuario = mysqli_real_escape_string($conn, $_POST['txt_usuario']); //Escapar de caracteres especiais, como aspas, prevenindo SQL injection
        $senha = mysqli_real_escape_string($conn, $_POST['txt_senha']);
        //$senha = md5($senha);
                //$senha = hash('sha512','$senha');
                $senha = $senha;
        
        $result_usuario = "SELECT * FROM usuarios WHERE matricula = '$usuario' && senha = '$senha'";
        $resultado_usuario = mysqli_query($conn, $result_usuario);
        $resultado = mysqli_fetch_assoc($resultado_usuario);
        
        //Encontrando um usuário na tabela usuario com os mesmos dados digitado pelo usuario
        if(isset($resultado)){
            $_SESSION['usuarioId'] = $resultado['id'];
            $_SESSION['usuarioNome'] = $resultado['nome'];
            $_SESSION['usuarioNiveisAcessoId'] = $resultado['niveis_acesso_id'];
            $_SESSION['usuarioMatricula'] = $resultado['matricula'];
            if($_SESSION['usuarioNiveisAcessoId'] == "1"){
                header("Location: adm.php");
            }elseif($_SESSION['usuarioNiveisAcessoId'] == "2"){
                header("Location: pagi_moderador/moderad.php");
            }elseif($_SESSION['usuarioNiveisAcessoId'] == "3"){
                header("Location: user_comum/user.php");
            }else{
                $_SESSION['loginErro'] = "Erro - Entre em contato suporte@suporte.com.br";
                header("Location: login.php");
            }
        }else{
            $_SESSION['loginErro'] = "Usuário ou senha inválido";
            header("Location: login.php");
        }
    }else{
        $_SESSION['loginErro'] = "Usuário ou senha inválido";
        header("Location: login.php");
    }
?>

 

não sei onde estou errando pois o camp matricula é int e no login aceita letras.

 

 

 

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