** RESOLVIDO ** Capturar Usuário Logado

(AndreMavericks) #1

Olá pessoal.

Eu tenho uma aplicação onde ao gravar um novo registro na base, eu preciso registrar a Data e também qual foi o usuário que inseriu o registro nos campos Dt Cadastro e Usuario Cadastro.
E também ao atualizar eu gravo qual foi a ultima data de alteração e o ultimo Usuário que alterou o registro.

Com as datas não tenho problemas, porém não estou conseguindo encontrar uma forma de capturar o usuário que está na sessão.

OBS: Para entrar na minha aplicação, tenho um formulário com Login e Senha.

Desde já agradeço a ajuda.

(Allan Medeiros) #2

Olá Andre,
No formulário de login, crie uma variável global para armazenar o nome do usuário logado:
$gloLogin={loginUsuario};
sc_set_global($gloLogin);

Nos formulários da sua aplicação onde deseja gravar o login do usuário, vá na opção Formulário / Atribuir Valores
Selecione o campo onde será gravado o login; coloque a opção “Valor Definido” e preencha com o nome da variável global: [gloLogin]

Espero ter ajudado.
[]s
allan

(system) #3

Olá André,

Eu já tive alguns probleminhas ao trabalhar com sessões dentro de algumas aplicações, principalmente aquelas abertas em iframes… até hoje não descobri o motivo, mas acabei optando por utilizar cookies… É uma boa alternativa, pelo menos resolveu meus problemas.

Na aplicação de Login, basta setar o cookie com o comando:

setcookie("usuarioid", $login, time()+3600, "/", ".site.com.br", 1);

[tt]usuarioid -> nome do cookie
$login -> valor a ser gravado
time()+3600 -> tempo para expirar em segundos
“/” - gravar o cookie para todas as páginas a partir do diretório raiz do site
“.site.com.br” - domínio
1 - usar https (1- sim / 0 - não)[/tt]

e nas aplicações desejadas basta recuperar o cookie no evento onInit():

$usuarioid = $_COOKIE["usuarioid"];

Att.
Robson

(Rodrigo Lins) #4

Bom Dia,

A solução dos nosso companheiros são boas e corretas, é só você escolher de fato o que lhe encaixa melhor… Eu geralmente utilizo a variável global mesmo como o Allan falou.

Robson, pode ser que o seu PHP não esteja configurado corretamente para “SESSION”, umas das propriedades do PHP que é importante é o session.save_path se ele não estiver configurado, ou não tiver permissão de escrita no diretório, pode ser que não funcione, etc… Ambiente é um problema sempre complicado, as vezes funciona aqui, ali já não funciona, etc… Mas na maioria das vezes é configuraçào de fato.

Rodrigo Lins.

(AndreMavericks) #5

Valeu pessoal, estou postando atrasado, mas muito obrigado pela resposta rápida!

Funcionou perfeitamente.

Só tive que fazer uma modificação, pois no momento em que eu atribuí o usuario da sessão para minha variável, eu recuperei o nome, e eu precisava do código do usuario.
$usuario= $_SESSION[‘usuario’];

Então na minha aplicação eu criei um campo novo, que recebeu este nome,
e à partir deste nome, consigo recuperar o código do Usuario e grava-lo na base.

Muito obrigado!