Autor Tópico: Senha md5  (Lida 1642 vezes)

Helder

  • Iniciante
  • **
  • Mensagens: 50
Senha md5
« Online: Março 23, 2012, 09:13:07 am »
Bom dia galaero do SC

Uso este script no SC5 para validação de cadastro e mudança de senha, e funciona perfeitamente.
Mas no SC6 não da certo, me da a menssagem de "Senha atual invalido".
Alguem pode me ajudar?

sc_lookup(ds, "select us_login, us_senha from usuarios where us_login = '[sm_global_login]' and us_senha = '" . md5({password_current}) . "' ");

if ({ds} != false)
{   
   if ({password_new} != {password_confirm} || trim({password_confirm}) == '' || strlen({password_new}) < 5)
   {
      sc_alert("Senha com menos de 5 caracteres ou senha de confirmação inválida!");
   }
   else
   {
      sc_exec_sql("update usuarios set us_senha = '" . md5({password_new}) . "', us_sh = 'OK', us_mdsh = '{data_mdsh}' where us_login = '[sm_global_login]'");
      echo "<script language='javascript'>
      alert('Sua senha foi alterada com sucesso! Bom Trabalho!');
      {
      window.parent.location.href='../scpp/scpp.php'
      }
      </script>";
   }
}
else
{
   sc_alert("Senha atual inválida !");
}

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 916
    • Simples Assim
    • Email
Re:Senha md5
« Responder #1 Online: Março 23, 2012, 09:19:40 am »
Helder,

Pelo que eu sei a linguagem SQL não aceita concatenação com . e sim com CONCAT... tem certeza que estava funcionando na V5? Dê uma olhada direitinho nisso.

Tenta assim:

sc_lookup(ds, "select us_login, us_senha from usuarios where us_login = '[sm_global_login]' and us_senha = md5({password_current})")
ou assim
sc_lookup(ds, "select us_login, us_senha from usuarios where us_login = '[sm_global_login]' and us_senha = md5('{password_current}')")

uma das duas formas deve funcionar.

Abraço.
« Última modificação: Março 23, 2012, 09:28:55 am por jovitomelo »
Jovito Melo
Maceió - Alagoas

Helder

  • Iniciante
  • **
  • Mensagens: 50
Re:Senha md5
« Responder #2 Online: Março 23, 2012, 09:28:11 am »
Funcionando perfeitamente.... acabei de fazer um teste.....

Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Senha md5
« Responder #3 Online: Março 23, 2012, 09:37:59 am »
postgreSql concatena utilizando o pipe.
mysql com a função concat

por isso a macro sc_concat confirme o banco altera a query internamente, mas infelizmente não funciona em qualquer evento do sc.

Helder

  • Iniciante
  • **
  • Mensagens: 50
Re:Senha md5
« Responder #4 Online: Março 23, 2012, 09:47:07 am »
Amigo jovitomelo

usei a sua sujestao e aparentimente de certo.
sc_lookup(ds, "select us_login, us_senha from usuarios where us_login = '[sm_global_login]' and us_senha = md5('{password_current}')")

vou fazer mais alguns teste, mas desde já muito obrigado pela atenção.

Att
Helder

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 916
    • Simples Assim
    • Email
Re:Senha md5
« Responder #5 Online: Março 23, 2012, 10:03:50 am »
Ok,

Mas continuo achando estranho isso funcionar na V5 porque isso não tem nada com o SC e sim com a linguagem SQL.

De qualquer forma, boa sorte!
Jovito Melo
Maceió - Alagoas

Helder

  • Iniciante
  • **
  • Mensagens: 50
Re:Senha md5
« Responder #6 Online: Março 30, 2012, 07:14:13 pm »
Galera do SC
Estava com problema para validação com md5({campo})... consegui fazer desta forma e agora ta dando certo, se alguém se interessar.... ta ai.

E sempre bom compartilhar conhecimentos.

Abraço a todos.
Helder

$check_sql = "SELECT us_login, us_senha"
   . " FROM usuarios"
   . " WHERE us_login = '[sm_global_login]' and us_senha =  '" . md5({password_current}) . "'";

$spswd = sc_sql_injection(md5({password_confirm}));

sc_lookup(ds, $check_sql);

if ({ds} != false)
{
   if ({password_new} != {password_confirm} || trim({password_confirm}) == '' || strlen({password_new}) < 5)
   {
      sc_alert("Senha com menos de 5 caracteres ou senha de confirmação inválida!");
   }
   else
   {
      sc_exec_sql("update usuarios set us_senha =  $spswd, us_sh = 'OK', us_mdsh = '{data_mdsh}' where us_login = '[sm_global_login]'");
      echo "<script language='javascript'>
      alert('Sua senha foi alterada com sucesso!\\nVocê esta apto a usar o sistema ?????.\\nBom Trabalho!');
      {
      window.parent.location.href='../apl/apl.php'
      }
      </script>";
   }
}
else
{
   sc_alert("Senha atual inválida !");
}

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Senha md5
« Responder #7 Online: Março 30, 2012, 08:27:58 pm »
Ai galera isso que ele estava fazendo é totalmente válido. Ele estava concatenando com ponto porque estava escrevendo um código PHP a macro do sc não executa o comando diretamente no mysql, a query é reescrita na geração do código. Falei besteira?