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

LISTAR SOMENTE DADOS DO USUÁRIO LOGADO.


DOUGLAS HENN

Pergunta

Olá pessoal sou novo por aqui e no meio de programação também, estou criando um projeto de entregas onde a empresa lançará as entregas para os entregadores que ela seleccionar, até ai está quase tudo desenvolvido meu problema está sendo que não estou conseguindo listar os dados somente do usuário logado na sessão , está buscando de todos os entregadores não sei como fazer a cláusula WHERE no select, então coloquei manual o nome do entregador e criei uma pagina PHP para cada entregador rsrs...

$result_entregas = "SELECT * FROM entregas WHERE entregador= 'Gustavo Silva'";

No meu Login .PHP estou usando níveis de sessão para que o admin vá para o painel completo e o entregador acesse somente a página de entregador, e mesma coisa o Lojista.

gostaria da ajuda de vocês, para poder estar resolvendo essa questão desde já agradeço a todos"

*** DESCONSIDEREM AS ORDENS DO HTML E PHP KKKK COMO DISSE NÃO ENTENDO MUITO. ***

 

Segue a baixo meu código da página de Login!

<?php
include_once('conexao.php');
 
if (isset($_POST['email']) || isset($_POST['senha'])) {
 
    if (strlen($_POST['email']) == 0) {
        echo "Preencha seu e-mail";
    } else if (strlen($_POST['senha']) == 0) {
        echo "Preencha sua senha";
    } else {
        echo "<br><br><br><center>E-mail ou Senha inválidos!</center>";
 
        $email = $mysqli->real_escape_string($_POST['email']);
        $senha = $mysqli->real_escape_string($_POST['senha']);
 
        $sql_code = "SELECT * FROM usuarios WHERE email = '$email' AND senha = '$senha'";
        $sql_query = $mysqli->query($sql_code) or die("Falha na execução do código SQL: " . $mysqli->error);
 
        //INICIO LEITURA NIVEIS DE ACESSO
        //(percorre a coluna "nivel"da tabela para indentificar os niveis de acessso
        //e direcionar cada usuario para sua respectiva página)
 
        $quantidade = $sql_query->num_rows;
 
        if ($quantidade == 1) {
            while ($percorrer = mysqli_fetch_array($sql_query)) {
                $nivel = $percorrer['nivel'];
                $nome = $percorrer['nome'];
 
                session_start();
 
                if ($nivel == 'administrador') {
                    $_SESSION['nivel'] = $nome;
                    header('Location: administrativo.php');
                }
 
                if ($nivel == 'loja') {
                    $_SESSION['nivel'] = $nivel;
                    header('Location: lojas.php');
                }
 
                if ($nivel == 'gustavosilva') {
                    $_SESSION['nivel'] = $nivel;
                    header('Location: entregadorgustavosilva.php');
                }
            }
        }
    }
}
?>
<!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>Login</title>
</head>
 
<body>
    <div>
        <form action="" method="POST">
            <div class="img">
                <img src="assets/img/LOGO_LIKEFOOD_EXPRESS.png"><br><br><br>
                <h1>Login</h1>
                <input type="email" name="email" placeholder="Email" required>
                <br><br>
                <input type="password" name="senha" placeholder="Senha" required>
                <br><br><br>
                <button class="btn" type="submit">Entrar</button><br><br><br>
                <h2>Não possui uma conta?<br>
                    <a class="h2" href="">
                        Cadastre-se</a>
                </h2>
        </form>
    </div>
</body>
 
</html>

 

Segue a baixo meu código da página do Entregador! ( ONDE ESTÁ LISTANDO SOMENTE DO ENTREGADOR 'GUSTAVO SILVA' PORQUE COLOQUEI DE FORMA MANUAL )

<?php
    if(!isset($_SESSION)) {
        session_start();
    }
   
    if(!isset($_SESSION['nivel'])) {
        header('Location: login.php');
    }
?>
<body>
    <?php
    include_once("conexao.php");
    $result_entregas = "SELECT * FROM entregas WHERE entregador= 'Gustavo Silva'";
    $resultado_entregas = mysqli_query($mysqli, $result_entregas);
 
    ?>
    <!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">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <title>Listar Entregas</title>
    </head>
 
    <body>
        <nav>
            <div class="img">
                <img src="assets/img/LOGO_LIKEFOOD_EXPRESS_branco.png">
            </div>
 
            <div class="menu-btn">
                <i class="fa fa-bars fa-2x" onclick="menuShow()"></i>
            </div>
            <h2>Entregas Lançadas</h2>
 
            <ul>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="sair.php"> Sair</a> </li>
            </ul>
        </nav>
        <script src="assets/js/main.js"></script>
 
        <div class="master">
            <table class="tabela">
                <tr class="id">
                    <th>ID</th>
                    <th>Bairro</th>
                    <th>Valor</th>
                    <th>Entregador</th>
                    <th>Data</th>
                    <th>Ação</th>
                </tr>
                <tr class="coluna">
                    <?php while ($rows_entregas = mysqli_fetch_assoc($resultado_entregas)) { ?>
                        <td><?php echo $rows_entregas['id']; ?></td>
                        <td><?php echo $rows_entregas['bairro']; ?></td>
                        <td><?php echo $rows_entregas['valor']; ?></td>
                        <td><?php echo $rows_entregas['entregador']; ?></td>
                        <td><?php echo date("d/m/Y", strtotime($rows_entregas['data'])); ?></td>
                        <td><a class="link-as-btn0" href="">
                                <c>Detalhes</c>
                            </a></td>
                </tr>
            <?php } ?>
            </table>
            </div>
        </div>
    </body>
 
    </html>
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Bom dia, eu também tenho essa dor de cabeça. Eu fiz um login meio boca no meu código menu.php e o que eu vi por aí no Google é que a instrução session_start() tem que ser a primeira instrução tanto na página onde vai ser definido o $_SESSION bem como na página onde o $_SESSION vai ser usado.

Se o safado do Gustavo Silva sabe que existe uma página chamada administrativo.php, o que impede dele entrar nessa página?

Nesse caso, eu faria algo assim no admnistrativo.php:

<?php
start_session( );
if ($_SESSION['nivel']!="administrativo"){echo "sinto muito, você não está autorizado a ver essa página";exit;}

Ou seja, você tem que repensar o seu código, fazendo o start_session( ); ser a primeira instrução, e não no meio do código.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Fiz algumas alterações no seu código para testar aqui no meu laboratório, eu só tenho um notebook e um celular, e deu certo, graças a Deus! No notebook eu entrei com o entregador "Frank" e no celular eu entrei com o entregador "Rodrigo". Olha, cara, gostei mesmo do seu código, e gostei mais ainda do $_SESSION, mas eu não tenho a menor ideia como isso funciona.

 

login.php

<?php
session_start();

$mysqli=new mysqli("localhost","root","","diario");
if (isset($_POST['email']) && isset($_POST['senha'])) {
    $email = $mysqli->real_escape_string($_POST['email']);
    $senha = $mysqli->real_escape_string($_POST['senha']);
	$query = $mysqli->query("select * from tbusuario where email='$email' and senha='$senha'") 
		or die("Falha na execução do código SQL: " . $mysqli->error);
	// tbusuario contem os campos nome, email, senha e nivel
    $quantidade =$query->num_rows;
	if ($quantidade==0){echo "usuário ou senha inválida!";}
	if ($quantidade==1){
		$row=$query->fetch_assoc();
		$nome=$row['nome'];
		$nivel=$row['nivel'];
		$_SESSION['nome']=$nome;
		if ($nivel == 'administrador') {header('Location: administrativo.php');}
		if ($nivel == 'lojista') {header('Location:lojista.php');}
		if ($nivel == 'entregador') {header('Location:entregador.php');}
		} }
?>
<!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>Login</title>
</head>
 
<body>
    <div>
        <form method=post>
            <h1>Login</h1>
            <input type=email name=email placeholder=Email required>
            <br><br>
            <input type="password" name="senha" placeholder="Senha" required>
            <br><br><br>
            <button class="btn" type="submit">Entrar</button><br><br><br>             
        </form>
    </div>
</body>
 
</html>

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

entregador.php

<?php
session_start();
if(!isset($_SESSION['nome'])) {header('Location: login.php');}
$entregador=$_SESSION['nome'];
$mysqli=new mysqli("localhost","root","","diario");
$entrega = $mysqli->query("SELECT * FROM tbentrega WHERE entregador='$entregador'");
// tbentrega tem os campos id, bairro, valor, entregador, data
    ?>
    <!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">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <title>Listar Entregas</title>
    </head>
 
    <body>
        <nav>
            <div class="img">
                <img src="assets/img/LOGO_LIKEFOOD_EXPRESS_branco.png">
            </div>
 
            <div class="menu-btn">
                <i class="fa fa-bars fa-2x" onclick="menuShow()"></i>
            </div>
            <h2>Entregas Lançadas</h2>
 
            <ul>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="sair.php"> Sair</a> </li>
            </ul>
        </nav>
        <script src="assets/js/main.js"></script>
 
        <div class="master">
            <table class="tabela">
                <tr class="id">
                    <th>ID</th>
                    <th>Bairro</th>
                    <th>Valor</th>
                    <th>Entregador</th>
                    <th>Data</th>
                    <th>Ação</th>
                </tr>
                <tr class="coluna">
                    <?php while ($rows_entregas = mysqli_fetch_assoc($entrega)) { ?>
                        <td><?php echo $rows_entregas['id']; ?></td>
                        <td><?php echo $rows_entregas['bairro']; ?></td>
                        <td><?php echo $rows_entregas['valor']; ?></td>
                        <td><?php echo $rows_entregas['entregador']; ?></td>
                        <td><?php echo date("d/m/Y", strtotime($rows_entregas['data'])); ?></td>
                        <td><a class="link-as-btn0" href="">
                                <c>Detalhes</c>
                            </a></td>
                </tr>
            <?php } ?>
            </table>
            </div>
        </div>
    </body>
 
    </html>

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 04/07/2022 em 08:57, Frank K Hosaka disse:

Bom dia, eu também tenho essa dor de cabeça. Eu fiz um login meio boca no meu código menu.php e o que eu vi por aí no Google é que a instrução session_start() tem que ser a primeira instrução tanto na página onde vai ser definido o $_SESSION bem como na página onde o $_SESSION vai ser usado.

Se o safado do Gustavo Silva sabe que existe uma página chamada administrativo.php, o que impede dele entrar nessa página?

Nesse caso, eu faria algo assim no admnistrativo.php:

<?php
start_session( );
if ($_SESSION['nivel']!="administrativo"){echo "sinto muito, você não está autorizado a ver essa página";exit;}

Ou seja, você tem que repensar o seu código, fazendo o start_session( ); ser a primeira instrução, e não no meio do código.

ENTÃO O GUSTAVO SILVA NÃO CONSEGUERIA ACESSAR O "ADMINISTRATIVO" ,PORQUE TEM O NÍVEL DE SESSÃO,  ONDE ESTÁ O NIVEL COM NOME DELE "Gustavo Silva" SERIA NÍVEIS ( ENTREGADOR - ADMINISTRADOR - LOJISTA ) ENTÃO na tabela de cadastros ele estando cadastrado como " Entregador " ele acessa somente a página de entregadores e listaria somente os dsdos dele como entregador, meu problema está sendo fazer a função WHERE para somente listar os dados vindo da tabela entregas do usuário entregador que esteja logado!

Editado por DOUGLAS HENN
Link para o comentário
Compartilhar em outros sites

  • 0
Em 04/07/2022 em 08:57, Frank K Hosaka disse:

Bom dia, eu também tenho essa dor de cabeça. Eu fiz um login meio boca no meu código menu.php e o que eu vi por aí no Google é que a instrução session_start() tem que ser a primeira instrução tanto na página onde vai ser definido o $_SESSION bem como na página onde o $_SESSION vai ser usado.

Se o safado do Gustavo Silva sabe que existe uma página chamada administrativo.php, o que impede dele entrar nessa página?

Nesse caso, eu faria algo assim no admnistrativo.php:

<?php
start_session( );
if ($_SESSION['nivel']!="administrativo"){echo "sinto muito, você não está autorizado a ver essa página";exit;}

Ou seja, você tem que repensar o seu código, fazendo o start_session( ); ser a primeira instrução, e não no meio do código.

Sim concordo com você essa questão do START_SESSION. Vou modificar em meu projeto a ordem , realocar.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 04/07/2022 em 21:12, Frank K Hosaka disse:

Fiz algumas alterações no seu código para testar aqui no meu laboratório, eu só tenho um notebook e um celular, e deu certo, graças a Deus! No notebook eu entrei com o entregador "Frank" e no celular eu entrei com o entregador "Rodrigo". Olha, cara, gostei mesmo do seu código, e gostei mais ainda do $_SESSION, mas eu não tenho a menor ideia como isso funciona.

 

login.php

<?php
session_start();

$mysqli=new mysqli("localhost","root","","diario");
if (isset($_POST['email']) && isset($_POST['senha'])) {
    $email = $mysqli->real_escape_string($_POST['email']);
    $senha = $mysqli->real_escape_string($_POST['senha']);
	$query = $mysqli->query("select * from tbusuario where email='$email' and senha='$senha'") 
		or die("Falha na execução do código SQL: " . $mysqli->error);
	// tbusuario contem os campos nome, email, senha e nivel
    $quantidade =$query->num_rows;
	if ($quantidade==0){echo "usuário ou senha inválida!";}
	if ($quantidade==1){
		$row=$query->fetch_assoc();
		$nome=$row['nome'];
		$nivel=$row['nivel'];
		$_SESSION['nome']=$nome;
		if ($nivel == 'administrador') {header('Location: administrativo.php');}
		if ($nivel == 'lojista') {header('Location:lojista.php');}
		if ($nivel == 'entregador') {header('Location:entregador.php');}
		} }
?>
<!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>Login</title>
</head>
 
<body>
    <div>
        <form method=post>
            <h1>Login</h1>
            <input type=email name=email placeholder=Email required>
            <br><br>
            <input type="password" name="senha" placeholder="Senha" required>
            <br><br><br>
            <button class="btn" type="submit">Entrar</button><br><br><br>             
        </form>
    </div>
</body>
 
</html>

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

entregador.php

<?php
session_start();
if(!isset($_SESSION['nome'])) {header('Location: login.php');}
$entregador=$_SESSION['nome'];
$mysqli=new mysqli("localhost","root","","diario");
$entrega = $mysqli->query("SELECT * FROM tbentrega WHERE entregador='$entregador'");
// tbentrega tem os campos id, bairro, valor, entregador, data
    ?>
    <!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">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
        <title>Listar Entregas</title>
    </head>
 
    <body>
        <nav>
            <div class="img">
                <img src="assets/img/LOGO_LIKEFOOD_EXPRESS_branco.png">
            </div>
 
            <div class="menu-btn">
                <i class="fa fa-bars fa-2x" onclick="menuShow()"></i>
            </div>
            <h2>Entregas Lançadas</h2>
 
            <ul>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="#"> </a> </li>
                <li> <a href="sair.php"> Sair</a> </li>
            </ul>
        </nav>
        <script src="assets/js/main.js"></script>
 
        <div class="master">
            <table class="tabela">
                <tr class="id">
                    <th>ID</th>
                    <th>Bairro</th>
                    <th>Valor</th>
                    <th>Entregador</th>
                    <th>Data</th>
                    <th>Ação</th>
                </tr>
                <tr class="coluna">
                    <?php while ($rows_entregas = mysqli_fetch_assoc($entrega)) { ?>
                        <td><?php echo $rows_entregas['id']; ?></td>
                        <td><?php echo $rows_entregas['bairro']; ?></td>
                        <td><?php echo $rows_entregas['valor']; ?></td>
                        <td><?php echo $rows_entregas['entregador']; ?></td>
                        <td><?php echo date("d/m/Y", strtotime($rows_entregas['data'])); ?></td>
                        <td><a class="link-as-btn0" href="">
                                <c>Detalhes</c>
                            </a></td>
                </tr>
            <?php } ?>
            </table>
            </div>
        </div>
    </body>
 
    </html>

 

BOM DIA! BROTHER 

SEGUI AS ALTERAÇÕES QUE VOCÊ FEZ EM MEU CÓDIGO E FUNCIONOU 100%, ORGANIZEI AS SESSION TAMBÉM E START_SESSION.
FICOU SHOW ESSA PARTE AGORA. MUITO OBRIGADO PELA AJUDA"

OLHA COMO FICOU BROTHER! :)

listando entregas somente do usuario logado.png

Link para o comentário
Compartilhar em outros sites

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