Autor Tópico: Erro para exibir nome do usuario logado  (Lida 2089 vezes)

edsonrodsilva

  • Novato
  • *
  • Mensagens: 47
    • ALPHANET INFORMATICA
Erro para exibir nome do usuario logado
« Online: Abril 03, 2010, 11:35:15 am »
Quero exibir o nome do usuario logoado,

Estou usando o seguinte codigo...


$var_login = sc_sql_injection({login});
$var_password = sc_sql_injection(md5({password}));

sc_lookup(ds, "select nome, login, senha  from usuarios where login = $var_login and senha = $var_password ");

if ({ds} != false)
{

   $sm_global_login = {login};   
   sc_set_global($sm_global_login);
   
   $sm_global_nome = {nome};   
   sc_set_global($sm_global_nome);
   
   
   $dir = opendir($this->Ini->path_aplicacao . "..");

   while ($file = readdir($dir))
   {
      if ($file != '.' && $file != '..' && $file != '_lib')
      {
            sc_apl_status($file, 'on');
      }      
   }
   
   closedir($dir);
   
   sc_redir('mnu_principal');   
}
else
{
   sc_error_message("Acesso negado !");
}



Quando coloco para exibir no login exibe perfeitamente, mas quando coloco para exibir o nome da o seguinte erro.

Undefined property: control_login_apl::$nome


Alguem pode me ajudar??

Obrigado desde já!!!



robsonsilva

  • Visitante
Re: Erro para exibir nome do usuario logado
« Responder #1 Online: Abril 03, 2010, 12:24:12 pm »
Edson,

O problema é que o sc não está sabendo o que é este "{nome}".. vc fez o lookup certinho, mas faltou atribuir o valor do lookup para a variável.

Quando vc colocou $sm_global_login = {login}; após o lookup, ele não está pegando automaticamente o login do lookup, mas sim o login do CAMPO preenchido no formulário... e como no formulário não existe nenhum campo {nome}, ele não sabe de onde vc está querendo buscar esse dado.

Para recuperar estes dados do lookup tem que usar a variável que vc criou para recuperar os valores (no teu caso a "ds").

Exemplo:
Código: [Selecionar]
sc_lookup(ds, "select nome, login, senha  from usuarios where login = $var_login and senha = $var_password ");

$nome = {ds}[0][0]; // [0][0] busca a 1ª linha e 1ª coluna do dataset
$login = {ds}[0][1]; // [0][1] busca a 1ª linha e 2ª coluna do dataset

ou seja, antes de definir a variável global vc precisaria criar uma variável $nome que receberá o valor do lookup:

$nome = {ds}[0][0];

Teu código completo ficaria assim:

Código: [Selecionar]
$var_login = sc_sql_injection({login});
$var_password = sc_sql_injection(md5({password}));

sc_lookup(ds, "select nome, login, senha  from usuarios where login = $var_login and senha = $var_password ");

if ({ds} != false)
{
   // recuperar valores do lookup
   $nome = {ds}[0][0];
   $login = {ds}[0][1];

   $sm_global_login = $login;   
   sc_set_global($sm_global_login);
 
   $sm_global_nome = $nome;   
   sc_set_global($sm_global_nome);
   
   
   $dir = opendir($this->Ini->path_aplicacao . "..");

   while ($file = readdir($dir))
   {
      if ($file != '.' && $file != '..' && $file != '_lib')
      {
            sc_apl_status($file, 'on');
      }     
   }
   
   closedir($dir);
   
   sc_redir('mnu_principal');   
}
else
{
   sc_error_message("Acesso negado !");
}

Espero ter ajudado.

Att.
Robson

edsonrodsilva

  • Novato
  • *
  • Mensagens: 47
    • ALPHANET INFORMATICA
Re: Erro para exibir nome do usuario logado
« Responder #2 Online: Abril 03, 2010, 12:55:43 pm »
Problema resolvido!

Valeu mesmo Robson!

Muito Obrigado!

edmarfrazao

  • Visitante
Re: Erro para exibir nome do usuario logado
« Responder #3 Online: Junho 04, 2010, 12:25:12 pm »
Boa tarde,

estou tendo um problema parecido, será que vocês poderiam me explicar como posso usar o control_login_apl::$nome para poder usar em outra aplicação?