Ir ao conteúdo
  • Cadastre-se
Stifler874

PHP Erro login maiúscula ou minuscula

Recommended Posts

Fiz um sistema de login, porém quando o usuario tem um login "joao" e eu ponho "JoaO" ele consegue entrar. Alguem poderia ajudar ?

 

<?php
    if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 
error_reporting(E_ALL);

require 'login/AuthMeController.php';

// Change this to the file of the hash encryption you need, e.g. Bcrypt.php or Sha256.php
require 'login/Sha256.php';
// The class name must correspond to the file you have in require above! e.g. require 'Sha256.php'; and new Sha256();
$authme_controller = new Sha256();

$action = get_from_post_or_empty('action');
$user = get_from_post_or_empty('username');
$pass = get_from_post_or_empty('password');
$email = get_from_post_or_empty('email');

$was_successful = false;
if ($action && $user && $pass) {
    if ($action === 'Log in') {
        $was_successful = process_login($user, $pass, $authme_controller);
    } else if ($action === 'Register') {
        $was_successful = process_register($user, $pass, $email, $authme_controller);
    }
}

function get_from_post_or_empty($index_name) {
    return trim(
        filter_input(INPUT_POST, $index_name, FILTER_UNSAFE_RAW, FILTER_REQUIRE_SCALAR | FILTER_FLAG_STRIP_LOW)
            ?: '');
}


// Login logic
function process_login($user, $pass, AuthMeController $controller) {
    if ($controller->checkPassword($user, $pass)) {
        $_SESSION['user'] = $user;
        printf('<h1>Hello, %s!ff</h1>', htmlspecialchars($user));
        echo 'Successful login. Nice to have you back!'
            . '<br /><a href="index.php">Back to form</a>';
        return true;
    } else {
        echo '<h1>Error</h1> Invalid username or password.';
    }
    return false;
}

// Register logic
function process_register($user, $pass, $email, AuthMeController $controller) {
    if ($controller->isUserRegistered($user)) {
        echo '<h1>Error</h1> This user already exists.';
    } else if (!is_email_valid($email)) {
        echo '<h1>Error</h1> The supplied email is invalid.';
    } else {
        // Note that we don't validate the password or username at all in this demo...
        $register_success = $controller->register($user, $pass, $email);
        if ($register_success) {
            printf('<h1>Welcome, %s!</h1>Thanks for registering', htmlspecialchars($user));
            echo '<br /><a href="index.php">Back to form</a>';
            return true;
        } else {
            echo '<h1>Error</h1>Unfortunately, there was an error during the registration.';
        }
    }
    return false;
}

function is_email_valid($email) {
    return trim($email) === ''
        ? true // accept no email
        : filter_var($email, FILTER_VALIDATE_EMAIL);
}

?>
<!DOCTYPE html>
<html lang="pt-br">
<head>

</head>
<body>
            <?php if (!isset($_SESSION['user'])) { ?>
            <div class="menu-lateral"> 
                <div class="title"><i class="faz fa-sign-in-alt"></i> Fazer Login</div> 
                <div class="login">
                <form method="post">
                  <input value="<?php echo htmlspecialchars($user) ?>" name="username" required="">
                  <input type="password" value="<?php echo htmlspecialchars($pass) ?>" name="password" required="">
                  <input class="button-input" type="submit" name="action" value="Log in"><br>
                  <a href="./cadastrar">
                    <p>› Criar Conta</p>
                  </a>
                </form>                
                </div> 
            </div> 
            <?php }else{ ?>
            <div class="menu-lateral"> 
                <div class="title"><i class="faz fa-user"></i> Painel de Controle</div> 
                <div class="login">
                    <p>• Seja Bem Vindo, <b><?php echo $_SESSION['user'] ?></b> </p>
                    <a href="logout.php">> Sair</a>
                </div> 
            </div> 
            <?php }?>




</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já experimentou usar o strtolower() para converter todos os caracteres para minúsculo ou strtoupper() para maiúsculo da informação contida em username ?

 

Para dar certo até a informação da tabela precisaria estar gravada em minúsculo ou maiúsculo, antes de comparar para bater o formato exato gravado.

 

Mas de qualquer forma não é o melhor jeito de controlar usuário, tem formas mais eficazes que usam case sensitive.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×