Senha md5

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 "";
}
}
else
{
sc_alert(“Senha atual inválida !”);
}

Helder,

Pelo que eu sei a linguagem SQL não aceita concatenação com [size=24pt].[/size] 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.

Funcionando perfeitamente… acabei de fazer um teste…

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.

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

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!

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 "";
}
}
else
{
sc_alert(“Senha atual inválida !”);
}

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?