Olá a todos!!!
Gostaria que, ao criar um novo formulário, seja carregado no meu campo usuário e email do usuário, o nome do usuário e email do usuário logado no sistema.
Alguém pode me ajudar?
Olá a todos!!!
Gostaria que, ao criar um novo formulário, seja carregado no meu campo usuário e email do usuário, o nome do usuário e email do usuário logado no sistema.
Alguém pode me ajudar?
Observe sua tabela de usuários que é gerada automaticamente quando se cria o módulo segurança no SC.
Utilizar no evento onLoad do Formulário.
[code]
$log_user = [logged_user];
$sql = “SELECT
name,
email
FROM sua_tabela_seg_users
WHERE login = $log_user”;
$name__user = {rs[0][0]};
$usr__email = {rs[0][1]};[/code]
Senhores, perdoem-me a ignorância… Sou iniciante com o SC… não entendí as respostas
tatto, boa tarde.
Esmiuçando um pouco:
[var_email] = {seu_campo_email};
Faça uma query na sua tabela de usuários para pegar o nome do usuário (no onValidate também).
sc_select(meus_dados, “SELECT seu_campo_usuario FROM sua_tabela_usuarios WHERE seu_campo_email = ‘[var_email]’”);
if ({meus_dados} === false)
{
echo "Erro de acesso. Mensagem = " . {meus_dados_erro};
}
else
{
while (!$meus_dados->EOF){
[var_usuario] = $meus_dados->fields[0];
break;
}
$meus_dados->Close();
}
3 Em: Aplicação / Variáveis Globais; coloque as variáveis: [var_email] e [var_usuario] como de saída.
No seu formulário on evento onLoad, carregue os campos:
{seu_campo_usuario} = [var_usuario];
{seu_campo_email} = [var_email];
No seu formulário, em: Aplicação / Variáveis Globais; coloque as variáveis: [var_email] e [var_usuario] como de entrada.
OBS: Dependendo como estiver o seu sistema, talvés necessite receber estas variáveis no menu também (como de entrada) e refazer a ligação entre a tela de login e o menu.
Espero ter ajudado
att.
Flávio
Esse select da tabela sec_users também é no onValidate do app_login???
Sim, no onValidate.
Outra solução também é você usar a macro sc_redir, pois nela você pode passar as variáveis que você quer que a outra aplicação receba…
Na aplicação que vai receber essas variáveis você coloca ela no titulo, esse titulo fica mais dinâmico e mais fácil de dar manutenção.
Flavio, boa tarde… Ao segir os passos, me deparei com o seguinte erro (Executando o app_login):
Parse error: syntax error, unexpected ‘$nm_select’ (T_VARIABLE) in C:\Arquivos de programas\NetMake\v8\wwwroot\scriptcase\app\SADEP\appsec_Login\appsec_Login_apl.php on line 1653
Consultando a referida linha temos:
$nm_select = “SELECT name,
email
FROM sec_users WHERE email = ‘$this->sc_temp_var_email’”;
$_SESSION[‘scriptcase’][‘sc_sql_ult_comando’] = $nm_select;
$_SESSION[‘scriptcase’][‘sc_sql_ult_conexao’] = ‘’;
if ($this->meus_dados = $this->Db->Execute($nm_select))
{ }
elseif (isset($GLOBALS[“NM_ERRO_IBASE”]) && $GLOBALS[“NM_ERRO_IBASE”] != 1)
{
$this->meus_dados = false;
$this->meus_dados_erro = $this->Db->ErrorMsg();
}
;
Como está no evento o seu código?
Esse é o “onValidate” do meu código
Aí pelo que estou vendo é o código que vc pegou em Exibir->Código Fonte.
Gostaria de ver seu codigo que está no onValidate
$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({pswd}));
$sql = "SELECT
active,
name,
email
FROM sec_users
WHERE login = $slogin
AND pswd = ".$spswd;
sc_lookup(rs, $sql);
if(count({rs}) == 0)
{
sc_log_add(‘login Fail’, {lang_login_fail} . {login});
;
sc_error_message({lang_error_login});
}
else if({rs[0][0]} == ‘Y’)
{
$usr_login = {login};
$usr_name = {rs[0][1]};
$usr_email = {rs[0][2]};
sc_set_global($usr_login);
sc_set_global($usr_name);
sc_set_global($usr_email);
}
else
{
sc_error_message({lang_error_not_active});
sc_error_exit();
}
[var_email] = {email}
sc_select(meus_dados, “SELECT name,
email
FROM sec_users WHERE email = ‘[var_email]’”);
if ({meus_dados} === false)
{
echo "Erro de acesso. Mensagem = " . {meus_dados_erro};
}
else
{
while (!$meus_dados->EOF){
[var_usuario] = $meus_dados->fields[0];
break;
}
$meus_dados->Close();
}
Está faltando “;” aqui:
[var_email] = {email}
Blz… mas ao entrar no sistema ainda aparece o erro:
Falta definição das seguintes variáveis globais: var_email;
Vá em Aplicações->Variáveis Globais e coloque a variável var_email como Saída.
Bom dia, nobre Thyago
A questão é, que se eu mudar só a var_email, aparece a mesma tela, só com o campo usuário (var_usuario).
E se eu mudar o usuário, a tela abre, mas não carrega o email e o nome do usuário.