-
Conteúdo Similar
-
Por netocazuza
Tenho um sistema de login funcionando, checando usuário e senha para autenticar. Tá tudo funcional até agora, mas surgiu a necessidade de criar permissões, e estou meio perdido. Já criei o item permissões na tabela, e tentei algumas implementações, mas até agora, nada funcionou. Ou não abre, ou abre permitindo tudo.
Atualmente funciona assim:
O arquivo abaixo verifica login e senha e dá acesso:
<?php session_start(); include 'conexao/conexao.php'; $usuario = $_POST['usuario']; $senha = $_POST['senha']; $sql = "SELECT * FROM usuarioX WHERE usuarioX = '$usuario'"; $busca = mysqli_query($conexao, $sql); #Buscar senha $dados = mysqli_fetch_array($busca); $senhabd = $dados['senhaX']; $senhaVerificada = ($senha); #Verifica niveis de permissoes usuario #QUERO COLOCAR AS PERMISSÕES AQUI #Verifica se existe o usuario $linha = mysqli_affected_rows($conexao); if ($linha == 1) { if ($senhabd == $senhaVerificada) { $_SESSION['usuario'] = $usuario; header('Location: index.php'); } else { header('Location: login.php?id=1'); } } else { header('Location: login.php?id=2'); } ?>
No código acima, caso usuário e senha confira, ele direciona para o index, do contrário volta para o login. O que pretendo é acrescentar permissões de professor, aluno e pai. Tipo se 1 nas permissões, abrir o index. Se 2 nas permissões, abrir o aluno.php, e se 3 nas permissões, abrir o pai.php. Logo abaixo vou listar a página index, pois acredito que nela tem alguma ação que tá impedindo essa minha lógica. A idéia seria ter uma página dessa (index) para cada usuário, ou uma idéia melhor, caso alguém tenha.
<?php session_start(); if (!isset ($_SESSION['usuario']) == true) { unset($_SESSION['login']); header('Location: login.php'); } $logado = $_SESSION['usuario']; ?> <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title> Dashboard - </title> <!-- Favicon --> <link href="./assets/img/brand/favicon.png" rel="icon" type="image/png"> <!-- Fonts --> <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet"> <!-- Icons --> <link href="./assets/js/plugins/nucleo/css/nucleo.css" rel="stylesheet" /> <link href="./assets/js/plugins/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet" /> <!-- CSS Files --> <link href="./assets/css/argon-dashboard.css?v=1.1.0" rel="stylesheet" /> </head> <body> <nav class="navbar navbar-vertical fixed-left navbar-expand-md navbar-light bg-white" id="sidenav-main"> <div class="container-fluid"> <!-- Toggler --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <!-- Brand --> <a class="navbar-brand pt-0" href="./index.html"> <img src="./assets/img/brand/blue.png" class="navbar-brand-img" alt="..."> </a> <!-- User --> <ul class="nav align-items-center d-md-none"> <li class="nav-item dropdown"> <a class="nav-link nav-link-icon" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="ni ni-bell-55"></i> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right" aria-labelledby="navbar-default_dropdown_1"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Something else here</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <div class="media align-items-center"> <span class="avatar avatar-sm rounded-circle"> <img alt="Image placeholder" src="./assets/img/theme/team-1-800x800.jpg "> </span> </div> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right"> <div class=" dropdown-header noti-title"> <h6 class="text-overflow m-0">Welcome!</h6> </div> <div class="dropdown-divider"></div> <a href="#!" class="dropdown-item"> <i class="ni ni-user-run"></i> <span>Logout</span> </a> </div> </li> </ul> <!-- Collapse --> <div class="collapse navbar-collapse" id="sidenav-collapse-main"> <!-- Collapse header --> <div class="navbar-collapse-header d-md-none"> <div class="row"> <div class="col-6 collapse-brand"> <a href="./index.html"> <img src="./assets/img/brand/blue.png"> </a> </div> <div class="col-6 collapse-close"> <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#sidenav-collapse-main" aria-controls="sidenav-main" aria-expanded="false" aria-label="Toggle sidenav"> <span></span> <span></span> </button> </div> </div> </div> <!-- Form --> <form class="mt-4 mb-3 d-md-none"> <div class="input-group input-group-rounded input-group-merge"> <input type="search" class="form-control form-control-rounded form-control-prepended" placeholder="Search" aria-label="Search"> <div class="input-group-prepend"> <div class="input-group-text"> <span class="fa fa-search"></span> </div> </div> </div> </form> <!-- Navigation --> <ul class="navbar-nav"> <li class="nav-item class=" active" "> <a class=" nav-link active " href=" index.php"> <i class="ni ni-tv-2 text-primary"></i> Dashboard </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-satisfied text-orange"></i> Usuarios </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="tipoUsuario.php"> Cadastrar Tipo Usuario </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="usuario_hpac.php"> Cadastrar Usuario </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-shop text-blue"></i> Empresas </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="ramoAtividade.php"> Cadastrar Ramo de Atividade </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="formularioPJ.php"> Cadastrar Empresa </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-single-02 text-yellow"></i> Cliente </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="formularioCliente.php"> Cadastrar Cliente </a> </li> <li class="nav-item"> <a class="nav-link " href="#"> <i class="ni ni-bullet-list-67 text-red"></i> Listar Tabelas </a> </li> <li class="nav-item" style="margin-left: 10px"> <a class="nav-link " href="listarPJ.php"> Listar Empresas </a> </li> <li class="nav-item"> <a class="nav-link" href="./examples/login.html"> <i class="ni ni-key-25 text-info"></i> Login </a> </li> <li class="nav-item"> <a class="nav-link" href="./examples/register.html"> <i class="ni ni-circle-08 text-pink"></i> Register </a> </li> </ul> <!-- Divider --> <!-- Heading --> <!-- Navigation --> </div> </div> </nav> <div class="main-content"> <!-- Navbar --> <nav class="navbar navbar-top navbar-expand-md navbar-dark" id="navbar-main"> <div class="container-fluid"> <!-- Brand --> <a class="h4 mb-0 text-white text-uppercase d-none d-lg-inline-block" href="./index.html">Dashboard</a> <!-- Form --> <!-- User --> <ul class="navbar-nav align-items-center d-none d-md-flex"> <li class="nav-item dropdown"> <a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <div class="media align-items-center"> <span class="avatar avatar-sm rounded-circle"> <img alt="Image placeholder" src="./assets/img/theme/team-4-800x800.jpg"> </span> <div class="media-body ml-2 d-none d-lg-block"> <span class="mb-0 text-sm font-weight-bold"><?php echo $logado ?></span> </div> <div class="media-body ml-2 d-none d-lg-block"> <span class="mb-0 text-sm font-weight-bold"><?php echo $nivel ?></span> </div> </div> </a> <div class="dropdown-menu dropdown-menu-arrow dropdown-menu-right"> <div class=" dropdown-header noti-title"> <h6 class="text-overflow m-0">Bem-vindo</h6> </div> <div class="dropdown-divider"></div> <a href="logout.php" class="dropdown-item"> <i class="ni ni-user-run"></i> <span>Logout</span> </a> </div> </li> </ul> </div> </nav> <!-- End Navbar --> <!-- Header --> <div class="header bg-gradient-primary pb-8 pt-5 pt-md-8"> <div class="container-fluid"> <div class="header-body"> <!-- Card stats --> <div class="row"> <!-- inicio primeiro quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Empresas</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_empresa) as quantidade FROM empresa"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $quantidade = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-danger text-white rounded-circle shadow"> <i class="fas fa-chart-bar"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <span class="text-nowrap"></span> </p> </div> </div> </div> <!-- fim primeiro quadrado --> <!-- inicio segundo quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Usuarios</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_usuario) as quantidade FROM usuario_hpac"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $quantidade = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $quantidade ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-danger text-white rounded-circle shadow"> <i class="fas fa-chart-pie"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <span class="text-nowrap"></span> </p> </div> </div> </div> <!-- fim segundo quadrado --> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Alugados</h5> <?php include 'conexao/conexao.php'; $sql = "SELECT COUNT(id_status_imovel) as quantidade FROM status_imovel WHERE status_imovel = 'Aluguel'"; $busca = mysqli_query($conexao, $sql); $dados = mysqli_fetch_array($busca); $qtdaluguel = $dados['quantidade']; ?> <span class="h2 font-weight-bold mb-0"><?php echo $qtdaluguel ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-yellow text-white rounded-circle shadow"> <i class="fas fa-users"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <?php $sql3 = "SELECT SUM(valor_negocio)as valortotal FROM status_imovel WHERE status_imovel = 'Aluguel'"; $query = mysqli_query($conexao, $sql3); $dados3 = mysqli_fetch_array($query); $totalAluguel = $dados3['valortotal']; $totalAluguel; $porcento = $totalAluguel * 0.10; ?> <span class="text-success mr-2"><i class="fas fa-arrow-up"></i><?php echo number_format($porcento, 2, ',', '.') ?></span> <span class="text-nowrap">Lucro Alugueis</span> </p> </div> </div> </div> <div class="col-xl-3 col-lg-6"> <div class="card card-stats mb-4 mb-xl-0"> <div class="card-body"> <div class="row"> <div class="col"> <h5 class="card-title text-uppercase text-muted mb-0">Lucro Bruto</h5> <?php $totalbruto = $porcento + $total; ?> <span class="h2 font-weight-bold mb-0"><?php echo number_format($totalbruto, 2, ',', '.') ?></span> </div> <div class="col-auto"> <div class="icon icon-shape bg-info text-white rounded-circle shadow"> <i class="fas fa-percent"></i> </div> </div> </div> <p class="mt-3 mb-0 text-muted text-sm"> <?php if($totalbruto > 0) {?> <span class="text-success mr-2"><i class="fas fa-arrow-up"></i>Saldo Positivo</span> <?php } else {?> <span class="text-danger mr-2"><i class="fas fa-arrow-down"></i>Saldo Negativo</span> <?php }?> </p> </div> </div> </div> </div> </div> </div> </div> </body> </html> Diante disso, quero que alguém poste aqui uma sugestão contemplando os dois códigos, pois acredito que na primeira verificação usando AND ou WHERE eu estou acertando, mas o grande problema está na abertura da próxima página, que não estou conseguindo fazer. Acho que até checo a tabela, mas não estou conseguindo direcionar para a página certa.
-
Por danicarla
Olá pessoal, bom dia tudo bom?
Queria saber se tem como eu criar um usuário para um banco Mysql e permitir que esse usuário acesse somente algumas tabelas do banco
Estou procurando na documentação mas não encontrei nada... provavelmente não existe essa opção né?
-
Por matheusmarson
Fala Galera!
Seguinte
Fiz um sisteminha para upload de fotos em php
Tudo funcionando bklz.
Porém após o upload da imagem na pasta o arquivo que fui upado fica sem permissões e aí não consigo copiá-lo ou manipulá-lo
Alguém já teve este problema
Como resolver?
Valew desde já
-
Por maxvanderbil
Boa tarde desenvolvedores, Estou montando uma aplicação que é na realidade um repositório de materiais, daí gostaria de implementar um cadastro que possibilitasse a escolha de quais materiais eu desejo ter acesso. Então, o usuário iria escolher o que ele quer acessar e o painel dele só iria mostrar as categorias que ele escolheu ter o acesso. Esse login não seria por níveis de acesso, mais sim por níveis de permissões , onde eu acredito que preciso ter uma tabela de usuários e outra de permissões. Se algum de vocês tiveram e essa experiência e puderem compartilhar ficarei grato.
-