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

Painel de Controle


Hime

Pergunta

Espero que alguém aqui possa me ajudar.

Seguinte,

Eu tenho um website que vende alguns serviços, a empresa é dividida em Administração, Usuário (Funcionário) e Cliente.

Eu fiz o website com e-commerce e tudo, porém, eu preciso de um Painel de controle que tenha essas 3 áreas.

Administrador: Terá total acesso a tudo e a alterações no painel.

Usuário: Terá acesso a lista de serviços disponíveis, uma área para que ele tenha acesso a informações do serviço que ele pegou, terá uma área para ver o "Saldo Disponivel" do que ele finalizou e área de "Pedido de Saque". (O saque será feito através de outro sistema de pagamento)

Sendo que todos os usuarios tem acesso a MESMA lista de serviços disponiveis, mas cada um tem o seu próprio perfil, na qual fica seu saldo e seus serviços adquiridos.

Cliente: Terá um chat de contato ao ADM e ao Usuario que pegar o serviço do mesmo. Além de algumas coisas que pretendo colocar.

Não é nada demais, é algo bem básico, mas não sei aonde conseguir.

1) Existem sites que oferecem esse serviço de Intranet já pronto?

2) Ou algum programa que eu utilize para realiza-lo ?

Lembrando que eu não tenho muito conhecimento de programação e demais coisas, sou amador ainda.

Mas aceito todas as opiniões.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá Hime,

Isso que você deseja pode ser feito em PHP. É chamado de nível de acesso.

Adaptando para seu site poderia ficar:

Nível 2 - Administração

Nível 1 - Funcionário

Você deverá criar dois sistemas de login: um para os webmasters e o outro para os clientes. A diferença entre um e outro é que no primeiro você poderá escolher o nível de acesso à página, já no segundo será sempre o mesmo, visto que os clientes não terão acesso às páginas da moderação.

No primeiro sistema de login, que será destinado aos webmasters, terá um campo onde você definirá o nível de cada usuário ainda no cadastro. Se escolher o nível 1, ele terá acesso a várias páginas destinadas a nível 1, mas agora, se ele tentar entrar em páginas nível 2, será bloqueado.

Acho que isso resolve seu problema :D

Leituras úteis para você: link1, link2, link3

CRIANDO AS COISAS

Criando a tabela de usuários webmasters no MySQL:

CREATE TABLE IF NOT EXISTS `usuarios` (
        `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
        `nome` VARCHAR( 50 ) NOT NULL ,
        `usuario` VARCHAR( 25 ) NOT NULL ,
        `senha` VARCHAR( 40 ) NOT NULL ,
        `email` VARCHAR( 100 ) NOT NULL ,
        `nivel` INT(1) UNSIGNED NOT NULL DEFAULT '1',
        `ativo` BOOL NOT NULL DEFAULT '1',
        `cadastro` DATETIME NOT NULL ,
        PRIMARY KEY (`id`),
        UNIQUE KEY `usuario` (`usuario`),
        KEY `nivel` (`nivel`)
    ) ENGINE=MyISAM ;

Inserindo dados na tabela:

INSERT INTO `usuarios` VALUES (NULL, 'Administrador Teste', 'admin', SHA1('admin' ), 'admin@demo.com.br', 2, 1, NOW( ));

Formulário de login:

    <form action="validacao.php" method="post">
    <fieldset>
    <legend>Dados de Login</legend>
        <label for="txUsuario">Usuário</label>
        <input type="text" name="usuario" id="txUsuario" maxlength="25" />
        <label for="txSenha">Senha</label>
        <input type="password" name="senha" id="txSenha" />
      
        <input type="submit" value="Entrar" />
    </fieldset>
    </form>

Código que verifica se os dados foram preenchidos:

<?php
      
    // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
    if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
        header("Location: index.php"); exit;
    }
      
?> 

Conectando com o MySQL:

<?php
      
    // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
    if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
        header("Location: index.php"); exit;
    }
      
    // Tenta se conectar ao servidor MySQL
    mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());
    // Tenta se conectar a um banco de dados MySQL
    mysql_select_db('usuarios') or trigger_error(mysql_error());
      
    $usuario = mysql_real_escape_string($_POST['usuario']);
    $senha = mysql_real_escape_string($_POST['senha']);
      
    ?>
 

Validando dados:

<?php
      
    // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)
    if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
        header("Location: index.php"); exit;
    }
      
    // Tenta se conectar ao servidor MySQL
    mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());
    // Tenta se conectar a um banco de dados MySQL
    mysql_select_db('usuarios') or trigger_error(mysql_error());
      
    $usuario = mysql_real_escape_string($_POST['usuario']);
    $senha = mysql_real_escape_string($_POST['senha']);
      
    // Validação do usuário/senha digitados
    $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '".$usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";
    $query = mysql_query($sql);
    if (mysql_num_rows($query) != 1) {
        // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
        echo "Login inválido!"; exit;
    } else {
        // Salva os dados encontados na variável $resultado
        $resultado = mysql_fetch_assoc($query);
    }
      
    ?> 

Salvando os dados:

if (mysql_num_rows($query) != 1) {
        // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
        echo "Login inválido!"; exit;
    } else {
        // Salva os dados encontados na variável $resultado
        $resultado = mysql_fetch_assoc($query);
      
        // Se a sessão não existir, inicia uma
        if (!isset($_SESSION)) session_start();
      
        // Salva os dados encontrados na sessão
        $_SESSION['UsuarioID'] = $resultado['id'];
        $_SESSION['UsuarioNome'] = $resultado['nome'];
        $_SESSION['UsuarioNivel'] = $resultado['nivel'];
      
        // Redireciona o visitante
        header("Location: restrito.php"); exit;
    } 

Verificando se o usuário está logado:

<?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['UsuarioID'])) {
        // Destrói a sessão por segurança
        session_destroy();
        // Redireciona o visitante de volta pro login
        header("Location: index.php"); exit;
    }
      
    ?>
      
    <h1>Página restrita</h1>
    <p>Olá, <?php echo $_SESSION['UsuarioNome']; ?>!</p> 

Verificando o nível do usuário (este código deve ser posto em todas as páginas destinadas aos webmasters):

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

O código acima é para nível 1. Se quiser para nível 2, mude o número 1 para o número 2.

Você pode achar: "Meu Deus! Esses códigos estão em grego :o ", mas não se preocupe, qualquer dúvida é só perguntar aqui!

Lembre-se de ler todos os link que te passei!

Se você acha esse código muito difícil, procure no Google códigos prontos. Eles quebram um galho enorme!

Atenciosamente,

Pedro HSB

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,1k
    • Posts
      651,7k
×
×
  • Criar Novo...