Autor Tópico: Tela de login e senha - Retornar apenas o registro de quem logou...  (Lida 4538 vezes)

helderpirapora

  • Iniciante
  • **
  • Mensagens: 72
    • Email
Tela de login e senha - Retornar apenas o registro de quem logou...
« Online: Outubro 16, 2012, 05:23:51 pm »
estou testando o scriptcase e desenvolvi um pequeno sistema de curriculo, gostaria que me auxiliassem se possivel, pois tenho um formulario de dados e outro de controle de usuario e senha. Se o usuário digitar o seu email e senha e os mesmos existirem abrir o formulario com a apenas o seu registro e tambem somente para atualização, caso não exista o email a tela de cadastro exibiria ja coma tela de inserção. Consegui rabiscar alguma coisa, segue o código.

evento onvalidate
$email_control = {email};
$senha_control = {senha};
$sql =    "select email, senha from dados_pessoais
WHERE email ='".$email_control."'
AND senha ='".$senha_control."'";
sc_lookup(ds,$sql);
if (empty({ds})) {
   //sc_error_message("Email não registrado!! Iniciando inclusão!!");
   sc_apl_conf("form_dados_pessoais", "start", "new");
   sc_redir(form_dados_pessoais.php);
   }
else {
   sc_apl_conf("form_dados_pessoais", "insert", "off");
   sc_redir(form_dados_pessoais.php);
   }


Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #1 Online: Outubro 16, 2012, 05:34:12 pm »
Código: [Selecionar]
$email_control = {email};
$senha_control = {senha};
$sql =    "select email, senha from dados_pessoais
WHERE email ='".$email_control."'
AND senha ='".$senha_control."'";
sc_lookup(ds,$sql);
if (isset(ds[0][0]))) {
   sc_apl_conf("form_dados_pessoais", "start", "update");
   sc_redir(form_dados_pessoais.php);
   }
else {
   //sc_error_message("Email não registrado!! Iniciando inclusão!!");
   sc_apl_conf("form_dados_pessoais", "start", "new");
   sc_redir(form_dados_pessoais.php);
   }


Ai no onLoad da form_dados_pessoais você coloca:

Código: [Selecionar]
sc_reset_apl_conf("form_dados_pessoais", "start");

Acho que é isso que você quer.
-- Design ou programador eis a questão.

helderpirapora

  • Iniciante
  • **
  • Mensagens: 72
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #2 Online: Outubro 16, 2012, 05:51:27 pm »
Obrigado pela resposta meu amigo, porém continua indo para o primeiro registro.

helderpirapora

  • Iniciante
  • **
  • Mensagens: 72
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #3 Online: Outubro 17, 2012, 03:43:33 pm »
Gente, alguém pode me ajudar, ja tentei com sc_lookup e com sc_select, porém o formulario é carregado com todos os registros. Preciso apenas do registro do usuário que se logou. Acredito que deve ter algum parametro a ser passado no momento que se chama o formulário com a macro sc_redir, mas nao obtive sucesso.

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #4 Online: Outubro 17, 2012, 05:18:41 pm »
Helder eu também estou procurando por isso.
-- Design ou programador eis a questão.

Valter Júnior

  • Avançado
  • ****
  • Mensagens: 295
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #5 Online: Outubro 17, 2012, 05:26:18 pm »
Helder/Robert se conseguirem algum exemplo me mandem, também estou a procura desta rotina, na verdade estou com um sistema totalmente pronto só falta implementar isto para poder entregar o mesmo, o Arquimedes havia me falado que enviaria para o meu e-mail um exemplo completo e funcional do mesmo, só que ele esta viajando direto e não teve ainda como enviar, caso alguém tenha o e-mail dele e quiser entrar em contato com o mesmo ajudaria bastante.

PS: Caso alguém consiga um exemplo me mandem por favor valterjrs@hotmail.com, caso seja só um parâmetro vou ficar de olho no fórum
At.
Valter S. Júnior
SC v8

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #6 Online: Outubro 17, 2012, 05:58:33 pm »
CONSEGUI!!! xD

É mais fácil do que eu imaginava vamos usar o código do Helder como exemplo, bom primeiramente temos que seguir esses 2 passos abaixo:

Vá no seu formulário no menu SQL:



Depois vá ao campo Cláusula Where e crie sua variável global:


Dai pra frente vamos ao código:

Código: [Selecionar]
$email_control = {email};
$senha_control = {senha};
$sql =    "select email, senha from dados_pessoais
WHERE email ='".$email_control."'
AND senha ='".$senha_control."'";
sc_lookup(ds,$sql);
if (isset(ds[0][0]))) {
   sc_apl_conf("form_dados_pessoais", "start", "update");
   [WHERE_DINAMICO] = "email = '". {ds[0][0]}."'"; //  Aqui você coloca a condição.
   sc_redir(form_dados_pessoais.php);
   }
else {
   //sc_error_message("Email não registrado!! Iniciando inclusão!!");
   sc_apl_conf("form_dados_pessoais", "start", "new");
   [WHERE_DINAMICO] = "1=1"; //  Aqui você diz que quer todos os registros.
   sc_redir(form_dados_pessoais.php);
   }

Lembrando que você terá que colocar a variável global 1=1 toda vez que precisar acessar todos os registro, mas creio que é o mínimo.

Espero ter ajudado.

« Última modificação: Outubro 17, 2012, 06:01:14 pm por Robert Berbert »
-- Design ou programador eis a questão.

helderpirapora

  • Iniciante
  • **
  • Mensagens: 72
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #7 Online: Outubro 24, 2012, 08:32:18 am »
Prezado Robert, obtive esse erro e não consegui identifica-lo:


Parse error: syntax error, unexpected '[', expecting T_PAAMAYIM_NEKUDOTAYIM in C:\Program Files (x86)\NetMake\v6\wwwroot\scriptcase\app\Curriculo1\control\control_apl.php on line 1228

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #8 Online: Outubro 24, 2012, 08:53:43 am »
Tem algum [ Barrando o código, mas aqui funciona 100% eu fiz como expliquei, da uma olhada no código, se você deu algum espaço depois do [ ou colocou a mais.

Aqui V6 ultima release. funcionou 100%.
-- Design ou programador eis a questão.

helderpirapora

  • Iniciante
  • **
  • Mensagens: 72
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #9 Online: Outubro 26, 2012, 10:01:31 am »
Prezado Robert, descobri o erro do '[', porem ainda continua trazendo todos os registros. Uma pergunta,  na configuração da variavel global, se coloco entrada, aparece um get solicitando a entrada, preencho porem retorna todos os registros, se coloco como saida nao aparece o get e tambem retorna todos os registros.

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #10 Online: Outubro 26, 2012, 10:58:31 am »
Helder faz alguns testes, verifica se está achando o e-mail se está entrando no IF, se a variável está recebendo o nome certo.

A variável tem que recer SEUCAMPOEMAIL = 'email@email.com.br'

Eu não vejo porque não funcionar, tem como você postar um dump das suas tabelas e sua aplicação exportada para eu testar aqui?

Mande no meu email: robertberbert@ymail.com

Ou me adicione no skype: robert.conesoft
-- Design ou programador eis a questão.

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #11 Online: Outubro 26, 2012, 03:18:23 pm »
Helder coloque isso no seu onValidate do login:


Código: [Selecionar]
$slogin = sc_sql_injection({login});
$spswd = sc_sql_injection(md5({pswd}));


$sql = "SELECT
priv_admin,
active,
name,
email
      FROM sec_usuariosusers
      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});
sc_error_exit();
}
else if({rs[0][1]} == 'Y')
{
$usr_login = {login};
$usr_priv_admin = ({rs[0][0]} == 'Y') ? TRUE : FALSE;
$usr_name = {rs[0][2]};
$usr_email = {rs[0][3]};
sc_set_global($usr_login);
sc_set_global($usr_priv_admin);
sc_set_global($usr_name);
sc_set_global($usr_email);
}
else
{
sc_error_message({lang_error_not_active});
sc_error_exit();
}

$email = {email};
$sql =    "select email, senha from dados_pessoais
where email = $email";
//sc_lookup(ds,$sql);
sc_select(ds,$sql);
if (!empty({ds})) {
    sc_apl_conf("form_dados_pessoais", "start", "update");
    sc_apl_conf("form_dados_pessoais","insert","off");
$where_email = "email = '".$email."'";
sc_set_global($where_email);
    sc_redir(form_dados_pessoais.php);
   }
else {
   //sc_error_message("Email não registrado!! Iniciando inclusão!!");
    sc_apl_conf("form_dados_pessoais", "start", "new");
$where_email = "1=1";
sc_set_global($where_email);
    sc_redir(form_dados_pessoais.php);
   }


E no formulário você tira a sua var_email e coloca [where_email].

Acho que vai funcionar.
-- Design ou programador eis a questão.

Valter Júnior

  • Avançado
  • ****
  • Mensagens: 295
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #12 Online: Outubro 26, 2012, 03:19:41 pm »
Vai sim Helder, fiz exatamente como o Robert passou e deu certinho, vlw mano
At.
Valter S. Júnior
SC v8

gustavoocarvalho

  • Iniciante
  • **
  • Mensagens: 55
    • Email
Re:Tela de login e senha - Retornar apenas o registro de quem logou...
« Responder #13 Online: Novembro 20, 2012, 01:47:55 pm »
Boa tarde,

Estou também desenvolvendo um sistema de currículo, tenho uma tabela chamada "curriculo" nela tenha varios campos, dentre eles email(que sera o login) e senha.

Como faço para fazer o Login desse usuario e este ver somente as informações dele mesmo.

Não consegui entender as explicações acima.