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

Acesso Restrito


milka

Pergunta

Olá pessoal,

Como eu faço para uma variavel em PHP receber uma informação de um campo de minha tabela sendo que alem dessa informação tambem estarei trazendo outras...

Ex: estou trazendo o nome, login e o nivel eu quero guardar o valor em uma variavel para fazer o tratamento do nivel de meu usuario e verificar se ele pode ou não acessar tal página.

Eu queria guardar em uma session para utilizar onde quero e facilitar ...

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

http://www.php.net/manual/pt_BR/ref.session.php

Basicamente você tem que em algum momento trazer estes valores do banco de dados e colocar em variáveis de sessão que serão usadas em outras páginas....

$_SESSION['nome']=$VarRetornoNomeDoBancoDados;

Aí nas outras páginas onde quer recuperar este valor use:

session_start();

e aí você consegue acessar os valores das tuas sessões.

<?php echo($_SESSION['nome']); ?>

dê uma olhadinha no site dos imasters, tem um toturial bem útil sobre loguin guardando em sessão.

http://www.imasters.com.br/artigo/1762

http://forum.imasters.com.br/index.php?sho...47566&st=50

Link para o comentário
Compartilhar em outros sites

  • 0

Eu já estou trabalhando com session, só não estou sabendo como trazer o NIVEL já que não tenho um text ou combo pedindo uma informação...

meu código esta assim:


    $login = $_POST['login'];
     $senha = $_POST['senha'];
     
     if(empty($login) || empty($senha))
          {
             echo "<center>INFORME TODOS OS DADOS !!</center>";
             echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'java script:history.go(-1)'></center>";
          } 

  if(((strlen(trim($login))) and (strlen(trim($senha)))) > 0)
          {
                  // ---------------------- FUNCAO PARA CRIPTOGRAFIA

                    function md5x($senha)
                         {
                                    return strrev( md5( strrev( md5( $senha ))));
                         }
                    $senha_crip = md5x($senha);
                    
                            // -----------------------------------------------

                      $sql = "SELECT login,senha FROM tb_colaborador WHERE upper(login)=upper('$login') and upper(senha)=upper('$senha_crip')";

                      //Chamando a função, e passando como parâmetro a String de SQL

                      $resultado = executa($sql);

                     if (!$resultado)
                         {

                          echo "Erro!\n";
                          exit;

                        }
          
                       $arr = pg_fetch_all($resultado);

                       $validacao = 0;

                    if($arr)
                       {
                         $validacao = 1;
                 
                       //gravo as informações das variáveis dentro das sessões
                
                         $_SESSION['login'] = $login;
                         $_SESSION['validacao'] = $validacao;
                         $_SESSION['senha'] = $senha_crip;

                         header("Location: frames.php");

                       }else

                 echo "<center>Login ou Senha Incorretos !!</center>";
                 echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'java script:history.go(-1)'></center> ";
           
             

        }

Aí eu quero colocar ali junto com esses outros sessions um de nivel retornando naquele select de cima o nivel que esta na tabela colaborador..

Link para o comentário
Compartilhar em outros sites

  • 0

Se a sua idéia é saber se o cara tem permissão ou não para acessar uma página você pega o nível do cara do BD e guarda na sessão, e dentro do arquivo da página você colocar:

if($_SESSION['nivel'] <= 4){
echo "Você não tem autorização para acessa essa página!";
}
else
{

}

A idéia é essa... você pega o nível do cara da sessão e dentro do arquivo você colocar if/else para testar se o nível dele permite o acesso a página.

Link para o comentário
Compartilhar em outros sites

  • 0

você pega o nível do cara do BD e guarda na sessão

É justamente isso que eu quero...como eu faço pra guardar o nivel do logado em uma sessão.

Eu fiz assim:

  $buscar_nivel = pg_query($connect,"SELECT nivel FROM tb_colaborador WHERE upper(login)=upper('$login') and upper(senha)=upper('$senha_crip')");

  $nivel = pg_fetch_array($buscar_nivel);

  $_SESSION['nivel'] = $nivel;

Mas não dá erro nenhum quando eu chamo na página que ele não tem acesso...

Link para o comentário
Compartilhar em outros sites

  • 0

está mas não adianta APENAS você guardar o nível numa sessão, como eu disse no POST anterior, EM CADA PÁGINA que o cara for acessar você terá que testar o nível individualmente... também não adinta apenas testar se o $_SESSION['nivel'] está setado...

Link para o comentário
Compartilhar em outros sites

  • 0

está mas não adianta APENAS você guardar o nível numa sessão, como eu disse no POST anterior, EM CADA PÁGINA que o cara for acessar você terá que testar o nível individualmente... também não adinta apenas testar se o $_SESSION['nivel'] está setado...

Pois é, aí eu coloquei na página restrita bem assim:


<?
 //Inicia a sessão
session_start();
include "conectar.php";

$login_colaborador = $_SESSION['login'];

       if($_SESSION['nivel'] == "1")
{
    echo "<center>Você não tem permissão para acessar essa página !! </center>";
    echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'java script:history.go(-1)'></center> ";
}

?>

mas quando eu clico no link pra abrir a página ela abre normal como se não tivesse nivel de acesso

Link para o comentário
Compartilhar em outros sites

  • 0

Você está fazendo duas consultas: uma para pegar login e senha e outra para pegar somente o nível. Junte-as em uma só; isso torna o sistema um pouco mais rápido.

como eu poderia deixar os dois em um e dizer que a $_SESSION['nivel'] vai receber o $nivel..?

por que os dois eu consigo resgatar pois eles são informados no inicio do sistema, mas o nivel apenas trazendo do banco não sei como fazer a sessão receber a informação do banco..

Eu coloquei pra escrever o que estava dentro do $_SESSION['nivel'] e retornou apenas "Array"...

É tão simples...tinha que retornar 1...é como se não tivesse guardando o valor dentro da sessão.

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