Jump to content


Wilson R. D. Míccoli

Member Since 25/03/2010
Offline Last Active 20/04/2010, 04:32
-----

Posts I've Made

In Topic: Consulta No Mysql Concatenando Uma String

31/03/2010, 05:11

Bom, vamos lá.

Primeiramente quero me desculpar com todos, pois não expliquei detalhadamente o que eu queria, pra fazer tal solicitação. Consegui resolver o problema, mas pra não ficar mais um tópico abandonado, acho que o correto é explicar o que eu queria e como resolvi.

Primeiramente, queria fazer com que o PHP buscasse no MySQL informações sobre direitos de acesso de usuários em áreas de minha aplicação. A aplicação é um gerenciador de pedidos de produto manufaturado, onde o usuário manipula informações de clientes (inclui, edita, exclui) e abre novas ordens de serviço, podendo alterá-las no decorrer do processo da manufatura do produto.

Todavia, uma dificuldade encontrada era que o usuário podia ter acesso a todas as partes da aplicação, desde acessar a base de clientes e ter acesso a informações pessoais destes, até mesmo excluí-los.

Resolvi colocando parametros de acesso na base de dados do MySQL onde está o cadastro do usuário que acessa o sistema. Não sei se foi da maneira mais conveniente, mas foi a saída mais rápida que encontrei, até peço desculpas se por ventura minha solução tiver sido muito "nas coxas".

Criei campos de tabela no MySQL, referente ao acesso. Vou ilustrar com o exemplo dos acessos referente clientes e pedidos.

Campos de tabela: acc_incluicliente, acc_editacliente, acc_excluicliente, acc_incluipedido, acc_editapedido, acc_excluipedido. Todos os campos CHAR, com espaço de 1 caractere apenas

Na autenticação da Session, fiz o PHP jogar um select na tabela de usuários, e autenticar junto com o username, strings para cada acesso permitido ou não:

$LoginRS__query=sprintf("SELECT login, senha, nivel, acc_incluicliente, acc_editacliente, acc_excluicliente, acc_incluipedido, acc_editapedido, acc_excluipedido FROM funcionario WHERE login=%s AND senha=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

  $LoginRS = mysql_query($LoginRS__query, $data) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);

Feita a query, transformo as permissões da tabela em Strings:

  if ($loginFoundUser) {
    $loginAccIncluiCliente = mysql_result($LoginRS,0,'acc_incluicliente');
    $loginAccEditaCliente = mysql_result($LoginRS,0,'acc_editacliente');
    $loginAccExcluiCliente = mysql_result($LoginRS,0,'acc_excluicliente');
    $loginAccIncluiPedido = mysql_result($LoginRS,0,'acc_incluipedido');
    $loginAccEditaPedido = mysql_result($LoginRS,0,'acc_editapedido');
    $loginAccExcluiPedido = mysql_result($LoginRS,0,'acc_excluipedido');

E depois emprego-as...

    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_IncluiCliente'] = $loginAccIncluiCliente;
    $_SESSION['MM_EditaCliente'] = $loginAccEditaCliente;
    $_SESSION['MM_ExcluiCliente'] = $loginAccExcluiCliente;
    $_SESSION['MM_IncluiPedido'] = $loginAccIncluiPedido;
    $_SESSION['MM_EditaPedido'] = $loginAccEditaPedido;
    $_SESSION['MM_ExcluiPedido'] = $loginAccExcluiPedido;

No ínicio de cada página onde queria restringir o acesso, coloquei o seguinte código, de acordo com a situação e a variável (no exemplo estou usando a variável de editar o usuário). A permissão do acesso do usuário no MySQL sempre é igual a valor 1 (caso o campo esteja com valor nulo ou diferente de 1, a permissão é negada.

   $MM_restrictGoTo = "restrito.php";

   if ($_SESSION['MM_EditaUsuario']<>"1") {    // Se o código de acesso for diferente de 1
      header("Location: ". $MM_restrictGoTo);    // Então o acesso é restrito e é bloqueado
   }                                                                // Fim da Condição
      else {                                                      // SENÃO
                                                                    // Não faça nada
   }                                                                // Fim da Condição

Testei e funcionou efetivamente. Lógico, como falei antes e reitero, meus conhecimentos de PHP são extremamente amadores, então peço desculpas aos veteranos caso tenha feito algum tipo de volta absurda pra chegar nesse resultado. De qualquer maneira, agradeço muito a gentileza de todos que colaboraram.

Abraços
Wilson

Só complementando, a última parte onde usuei a variável de editar usuário a mesma não estava declarada na primeira parte da minha explicação, pois estou implementando-a agora.

Abraços

In Topic: Consulta No Mysql Concatenando Uma String

26/03/2010, 00:09

Oh Maykel você por aqui cara? Quanto tempo kkkkkkk

Então... joguei um código pra testar se o PHP estava me retornado um valor em branco na sessão... estando logado, ele apresenta o valor na variável:

<?php echo $login_usuario;?>

O curioso é que ele retorna o usuário que está logado. Usando o código que você me passou também não deu certo, vou tentar colocar a query com o nome do banco junto, pra ver se passa. Depois posto a resposta aqui pra dizer se deu certo ou não.

IPB Skin By Virteq