Ir para conteúdo

POWERED BY:

Arquivado

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

jooj oj

Problemas no Nível de acesso no login PHP e Mysql

Recommended Posts

pessoal, estou com problemas para fazer o nivel de acesso de um sistema web, o login já funciona inteiro inclusive o tutorial que vou postar junto com o projeto no meu github, é um sistema de cadastro de usuários do sistema e clientes, mas para cadastrar e editar os usuários queria colocar somente quem tiver permissão de adm (1) e quem não tiver vai somente adicionar e editar os  clientes, mas ele só entra no else, já tentei todos os vídeos e fóruns aqui, não sei mais o que fazer ;-;

 

no meio do código tem a parte que eu tentei de diversas maneiras fazer a verificação, só não sei o que fazer, queria entender ;-;

 

<?php
// Conexão
require_once 'conexao.php';
 
// Sessão
session_start();
// Botão enviar
if(isset($_POST['btn-entrar'])):
    $erros = array();
$login = mysqli_escape_string($conn, $_POST['login']);
$senha = mysqli_escape_string($conn, $_POST['senha']);
 
if(isset($_POST['lembrar-senha'])):
    setcookie('login', $login, time()+3600);
setcookie('senha', $senha, time()+3600);
endif;
 
if(empty($login) or empty($senha)):
    $erros[] = "<li> O campo login/senha precisa ser preenchido </li>";
else:
 
    $sql = "SELECT login FROM usuarios WHERE login = '$login'";
$resultado = mysqli_query($conn, $sql);
 
if(mysqli_num_rows($resultado) > 0):
    $senha = $senha;
$sql = "SELECT * FROM usuarios WHERE login = '$login' AND senha = '$senha'";
 
$resultado = mysqli_query($conn, $sql);
 
 
if(mysqli_num_rows($resultado) == 1):
 
 
    $dados = mysqli_fetch_array($resultado);
mysqli_close($conn);
$_SESSION['logado'] = true;
$_SESSION['id_usuario'] = $dados['id'];
 
 
 //começa aqui

$usuario = mysqli_fetch_assoc($resultado);
$_SESSION['nivel'] = $usuario['nivel'];
 
 if(isset($usuario['nivel']) == 1):
       header('location: home_user.php');
 else:
  header('location: home.php');
endif;
 

 

//até aqui, sem isso o código funciona de boa, mas sem o nível de acesso, até tentei trocar para char e 's' e 'n', inves de 1 e 0 para admin ou user

 


 
else:
    $erros[] = "  <li> Usuário e senha não conferem </li>";
endif;
 
else:
    $erros[] = "<li> Usuário inexistente </li>";
endif;
endif;
endif;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou ser sincero com você, isso ai vai dá merd$%&#...

A senha não tem nenhuma encriptação (pelo menos você ta fazendo a limpeza dos caracteres).

Sobre o nível é só criar uma condição.

//Errado:  
if(isset($usuario['nivel']) == 1):

//Correto
if(isset($usuario['nivel']) && $usuario['nivel'] == 1):

Outra coisa, você delega o nível num simples redirecionamento, acho que seria mais viável você colocar na página em questão (home.php), assim ela decide quem é ou não admin.

Compartilhar este post


Link para o post
Compartilhar em outros sites

em relação a criptografia da senha eu tinha feito, mas ficava alterando a senha pelo phpmyadmin para ir testando mais facil e acabei esquecendo de clocar de volta, valeu pelo aviso, mas essa parte eu já consegui fazer,  meu problema é que  a verificação do admin  só cai no else, como se o "nivel" não estivesse sendo reconhecido no index, e a coluna nivel está na tabela usuario mesmo, acho que o if até está certo também mas a variável não reconhece ;-;

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

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