• 0
Sign in to follow this  
PerguntasScript

Sistema de login com níveis de permissão - MySQL + PHP

Question

O sistema de cadastro está funcionando corretamente em todas as páginas;

Tenho 3 níveis de usuários, o problema é que na seguinte páginas, quando estou logado em todos os usuários ele me redireciona sempre para a mesma página que é menuCliente.php;

Algo que não deveria acontecer, visto que em determinados usuários ele deveria me liberar o acesso a página cadastrarCliente.php

O que há de errado com o código?

Página cadastrarCliente.php:

 

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="../styles/estilo.css">
    </head>

    <body>

        <?php
            include "../conexao.php";

            /* A sessão precisa ser iniciada em cada página diferente */
            if (!isset($_SESSION)){
                session_start();
            /* Verifica se não há a variável da sessão que identifica o usuário */
            } if (!isset($_SESSION['login'])){
                /* Destrói a sessão por segurança */
                session_destroy();
                
                /* Redireciona o visitante de volta pro login */
                header("Location: index.php");
                exit;
            }
        ?>

        <?php
            /* A sessão precisa ser iniciada em cada página diferente */
            if(!isset($_SESSION['idUsuario']['nivel'])){

                $nivelNecessario = 1;

                /* Verifica se não há a variável da sessão que identifica o usuário */
                if($_SESSION['idUsuario']['nivel'] = $nivelNecessario){

                    /* $alerta = echo "Você não tem permissão para realizar esta operação!"; */
                    echo "<script language='javascript'>alert($alerta);</script>";

                    /* Redireciona o visitante de volta pro login */
                    header("location:menuCliente.php");
                } else{

                    if($_SESSION['idUsuario']['nivel'] > $nivelNecessario){
                        header("location:cadastrarCliente.php");
                    }
                }
            }
        ?>

        <table>
            <tr>
                <th>
                    Você está logado com:
                    <?php
                        echo $_SESSION['login'];
                    ?>
                     | 
                </th>
                <th>
                    <a href="../logout.php"><p>Logout</p></a>
                </th>
            </tr>
        </table>
    </body>
</html>

Se precisarem do código das outras páginas me avisa, mas como eu falei, o erro está nesta página...

Edited by PerguntasScript

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá, observe o seguinte trecho do código:

if($_SESSION['idUsuario']['nivel'] = $nivelNecessario){

troque por isso:

if($_SESSION['idUsuario']['nivel'] == $nivelNecessario){

Se o problema persistir, avise.

até mais.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this