Erro para exibir nome do usuario logado

(edsonrodsilva) #1

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á!!!

(system) #2

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 [tt]$sm_global_login = {login};[/tt] 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:

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:

$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) #3

Problema resolvido!

Valeu mesmo Robson!

Muito Obrigado!

(system) #4

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?