Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josenilson

condição para validar usuário

Recommended Posts

Bom dia ! Boa tarde ! Boa Noite!

Olá pessoal tudo blz ?

 

Como eu faço para resolver esse problema, tenho uma pagina em php que valida os dados via $_POST apos essa validação

ele segue o próximo passo normalmente esses dados são LOGIN, SENHA, E NÍVEL DE ACESSO, porem quero criar condições para validar um de cada vez.

ex: se o login estiver errado echo "login errado", se o login estiver correto porem a senha estiver errada echo "senha errada" e por final o nível se o login estiver correto a senha também estiver e o nível estiver errado echo "nivel de acesso errado";

 

eu ate sei como funciona a condição IF porem esse código eu obtive através de vídeo aulas, como sou iniciante não estou conseguindo implementar isso.

se possível peço que quando postar mostrar e solução já no código para que eu possa estudar e absolver o conteúdo deus de já agradeço segue o código, Que Deus Abençoe.

 

 

<?php
include "conexao.php";
session_start();
if (isset($_POST['logar'])){
// RECUPERAR DADOS DO FORM
@$usuario = trim(strip_tags($_POST['usuario']));
@$senha = trim(strip_tags($_POST['senha']));
@$nivel = trim(strip_tags($_POST['nivel']));
}
//SELECIONA O BANCO DE DADOS
$select = "SELECT * FROM login WHERE usuario=:usuario AND senha=:senha AND nivel=:nivel";
try {
$result = $conexao->prepare($select);
$result->bindParam(':usuario', $usuario, PDO::PARAM_STR);
$result->bindParam(':senha',$senha, PDO::PARAM_STR);
$result->bindParam(':nivel',$nivel, PDO::PARAM_STR);
$result->execute();
$contar = $result->rowCount();
if ($contar>0){
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$nivel = $_POST['nivel'];
$_SESSION['usuario'] = $usuario;
$_SESSION['senha'] = $senha;
$_SESSION['nivel'] = $nivel;
header("Location: verifica_nivel.php");
}else{
unset ($_SESSION['usuario']);
unset ($_SESSION['senha']);
echo "<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\" DADOS INCORRETOS FAVOR VERIFICAR LOGIN, SENHA, E NIVEL DE ACESSO.\");
</script>";
}
} catch(PDOException $e) {
echo $e;
}
?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Ficaria mais ou menos assim:

<?php
include "conexao.php";
 
session_start();
 
if(isset($_POST['logar'])){
    @$usuario = trim(strip_tags($_POST['usuario']));
    @$senha = trim(strip_tags($_POST['senha']));
    @$nivel = trim(strip_tags($_POST['nivel']));
}
 
unset($_SESSION['usuario'], $_SESSION['senha'], $_SESSION['nivel']);
$errorMsg = "";
 
// faz a verificação somente pelo usuario; a senha e o nível serão feitos mais à frente
$select = "SELECT * FROM login WHERE usuario=:usuario";
 
try{
    $result = $conexao->prepare($select);
    $result->bindParam(':usuario', $usuario, PDO::PARAM_STR);
    $result->execute();
    $contar = $result->rowCount();
    
    // se não encontrou resultado, é porque o usuário não existe
    if($contar < 1){
        $errorMsg = "Usuário não existe.";
    }else{
        $dadosBd = $result->fetch(PDO::FETCH_ASSOC);
        
        // verifica se senha e nivel estão corretos, pois na consulta foi verificado apenas o usuário
        if($senha != $dadosBd["senha"]){
            $errorMsg = "Senha incorreta.";
        }else if($nivel != $dadosBd["nivel"]){
            $errorMsg = "Nível incorreto.";
        }
    }
    
    // se $errorMsg estiver vazio é porque não deu erro, então pode criar a sessão normalmente
    if(empty($errorMsg)){
        $_SESSION['usuario'] = $dadosBd['usuario'];
        $_SESSION['nivel'] = $dadosBd['nivel'];
        header("Location: verifica_nivel.php");
        exit;
    }else{
        echo "
            <META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
            <script>
                alert('".$errorMsg."');
            </script>
        ";
    }
}catch(PDOException $e){
    echo $e;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por Rodrigo Bigas
      Olá colegas, 
      Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está "aprovado", "em recuperação" ou "reprovado conforme a condição". Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue os prints:
       
      Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?
    • Por stefanyprs
      //modelo.html <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Hora do dia</title>     <link rel="stylesheet" href="estilo.css"> </head> <body onload="carregar()">     <header>         <h1> Hora do dia </h1>         </h1>     </header>     <section>         <div id="msg">             msg         </div>         <div id="foto">             <img class="imagem" src="fotomanha.jpg" alt="foto do dia">         </div>     </section>     <footer>         <p>&copy; Rodapé </p>     </footer>     <script src="script.js"></script> </body> </html>   //script.js function carregar () {     var msg = window.document.getElementById('msg')     var img  = window.document.getElementsByClassName('imagem')      var data = new Date()     var hora = data.getHours()          msg.innerHTML = 'Agora são ' + hora + ' horas'          if (hora >= 0 && hora < 12){         //Bom dia         img.src = 'fotomanha.jpg'         } else if (hora >= 12 && hora < 18){         //Boa tarde         img.src = 'fototarde.jpg'      } else {         //Boa noite         img.src = 'fotonoite.jpg'     } }   //estilo.css body{     background-color: aqua;     font: normal 15pt Arial; } header{     color:rgb(255, 255, 255);     text-align: center; } section{     background: white;     border-radius: 10px;     padding: 15px;     width: 500px;     margin:auto;     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.329);      } footer{     color:white;     text-align: center;     font-style: italic;   } div{     text-align: center; } .imagem{     width: 500px;    /* largura da imagem */     height: 350px;   /*  altura da imagem  */     margin-top: 10px; /* margem do topo */ }
    • Por joagostini
      Olá, sou iniciante, e estou fazendo, como exercício, o jogo da velha. 'Desenvolvi' uma rotina de escolha de nível do jogo (serão 3 níveis) que deve aguardar a escolha do usuário para o programa prosseguir. Mas acho que não entendi direito como o javascript funciona, pois o que fiz não funciona e não encontrei uma solução (talvez não saíba como pesquisar corretamente o assunto na web).

      O começo do HTML (que é pouco) onde está um select para escolha do nível é este:
      <body>     <div id="dvmenu">         <button onclick="iniciar()">Iniciar Jogo</button>         <p><br></p>         <div id="dvQuemComeca">             <label for="nivel">Escolha o nivel:</label>             <select id="nivel" onChange='atualiza()'>                 <option value=0 selected>Escolha um nível</option>                 <option value=1>Nível 1 - Brincadeira</option>                 <option value=2>Nivel 2 - Surpresa</option>                 <option value=3>Nível 3 - Desafio</option>             </select>         </div>         <div id="jogador" class="jogador"></div>         <div id="vencedor" class="jogador"></div>     </div>  
      O código JS é este:
      //INÍCIO VEM DE LOAD function iniciar() {     casela = document.querySelectorAll('div[id^="p"]');     for (let cas of casela) {         cas.innerHTML = '';     }     for (let i = 0; i < 9; i++){        tab = tab;     }     console.log(tab);     nivel = 0;      msg = '';     qtosLancesJog = 0;     sorteiaJogador();     //até aqui funcionou direito } //-------------------------------------------------------------------- //ESCOLHA DO NÍVEL DO JOGO function atualiza(){     let selecao = document.querySelector('#nivel');     let opcao = selecao.options[selecao.selectedIndex];     return opcao.value;    }   //--------------------------------------------------------------------   //SORTEIA QUEM VAI COMEÇAR JOGANDO //função para definir o jogador que inicia o tab function sorteiaJogador() {//funcionou direito     let quemComeca = parseInt(Math.floor(Math.random() * 2));     if (quemComeca == 0) {         msg = 'Computador';         //setTimeout(lanceCpu, 2000);//dá um intervalo antes do computador realizar o 1 lance         lanceCpu();     } else msg = 'Humano';//neste caso a rotina espera que o jogador clique no tabuleiro, qdo roda a função lancetab(pos)         lanceHumano();     document.querySelector('#jogador').innerHTML = `<br>O ${msg} começa!`; } //--------------------------------------------------------------------   //ESCOLHA RANDÔMICA, NIVEL = 1, Da POSIÇÃO DO LANCE DA CPU NO tabULEIRO function jogouCpu(){//funcionou direito //nível 1 modo randômico pos = Math.floor(Math.random() * 9); return pos; }   //função humana function lanceHumano(){     console.log('Estou na função humana');     do {         nivel = atualiza();         console.log(nivel);     } while (nivel === 0);     console.log(nivel + ' passei direto'); }  
      O problema está nesse do...while da function lanceHumano(). Segundo entendi, ele prosseguiria apenas quando nivel!== 0, caso contrário, ficaria 'preso' até o momento que o usuário escolhesse uma das opções. Pelo HTML percebesse que setei o select para value=0. Mas ele nem se dá ao trabalho de esperar um miléssimo de segundo, segue em frente com o valor que tiver, no caso 0. O while  não tem efeito. Essa minha perspectiva está errada? Se sim, o que fazer? (paradigma funcional, await?) Obrigado.
      P.S.. No código tem uns conole.logs que servem watch-dogs para ajudar a entender por onde vão as rotinas.
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.