Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Aê galera, espero que alguém possa me ajudar!!!
Estou tendo problemas para conseguir finalizar um código para o próprio usuário alterar a sua senha no banco de dados. O código está funcionando 90% correto, mas está tendo um problema.
Primeiro, o usuário digita a senha q está cadastrada no banco de dados, e em seguida digita a nova senha (isso em um form em outra página). Envia pra esse código, e o código abaixo faz o seguinte:
1- Cria uma conexão com o banco de dados;
2- Verifica se a senha antiga cadastrada no banco, é a mesma que o usuário digitou no campo "Senha Antiga";
3- Se a senha for igual, então ele vai cadastrar a senha nova no lugar da antiga, e é aí onde acontece o problema... :angry:
Ou o código não consegue substituir a senha nova no lugar da antiga, ou ele acaba inserindo a nova senha em uma nova linha no banco de dados. Alguém consegue resolver esse problema? O que modificar no código, e como ele ficaria?
Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Abraços!!
ps. Se alguém tiver um código que crie uma conexão com um banco de dados, e em seguida possa substituir a senha, e puder enviar pro meu e-mail, eu ficaria grato!
===================================
<%
DIM CONEXAO, RSTABELA, SQL
SET CONEXAO = SERVER.CREATEOBJECT("ADODB.CONNECTION")
CONEXAO.OPEN "PROVIDER = MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & SERVER.MAPPATH("/login/bdrgal.mdb")
SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela")
SENHABD=RSTABELA("senha")
ON ERROR RESUME NEXT
SENHAANTIGA = SERVER.HTMLENCODE(REQUEST("tx_senhaantiga"))
SENHANOVA = SERVER.HTMLENCODE(REQUEST("tx_senhanova"))
IF (SENHAANTIGA=SENHABD) THEN
SQL = "UPDATE Tabela set(senha)=" & TRIM(SENHANOVA)
CONEXAO.EXECUTE(SQL)
ELSE
RESPONSE.WRITE "SENHAS NÃO CONFEREM"
END IF
%>
Vamos lá, quais campos na sua Tabela. Eu usaria um campo de autonumerador para identificar o registro que você quer alterar e o acrescentaria nas sql de consulta e atualização.SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela WHERE ID = 1")e depois eu mudaria a sql de update para:CONEXAO.Execute("UPDATE Tabela SET senha ='" & TRIM(SENHANOVA) "' WHERE ID';")Deve funcionar. Espero ter ajudado.Dalton Tavaresdalton@codigotecnologia.com
> Vamos lá, quais campos na sua Tabela. Eu usaria um campo de autonumerador para identificar o registro que você quer alterar e o acrescentaria nas sql de consulta e atualização.SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela WHERE ID = 1")e depois eu mudaria a sql de update para:CONEXAO.Execute("UPDATE Tabela SET senha ='" & TRIM(SENHANOVA) "' WHERE ID';")Deve funcionar. Espero ter ajudado.Dalton Tavaresdalton@codigotecnologia.com
na minha tabela tem os campos LOGIN, SENHA, USER. Criei o campo ID tb agr. Qnd você colocou "WHERE ID = 1" então você já atribuiu ao ID o valor 1, foi isso? e se o user tiver o valor de ID = 5, por ex? Help-me!fiz as tentativas com as dicas, mas nenhuma funcionou até agr...!Acho q com o esquema do ID funciona, pq ele aponta direto no usuário. Mas como ficaria o código final?! VLW!!!acho melhor, você aprender um pouco de request antes de ir direto pro banco de dados...rsssnessas horas, você faria um request com o ID, que seria diferente e o colocaria no WHERE...exemploid = request("id")SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela WHERE ID =" & id)sendo que ai é dinamico, a id pode vir qualquer valor...
>
Tipo cara na hora que o cara fizer login pega um Session e joga o id do cara cadastrado no bd (poem como autonumeração o campo id, pois só serve para pesquisa), daí na hora do select,update você usa essa Session:
**ASP** [/tr][tr]SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela where id=" & Session("user_id"))
...
SQL = "UPDATE Tabela set senha='" & TRIM(SENHANOVA) & "' where id=" & Session("user_id")
[/tr]
Valeu meu véi!!! Funcionou legalllllll! ;) Abraços a tds!
mas só a senha dele no banco de dados ? ou há mais usuarios ?
<%DIM CONEXAO, RSTABELA, SQLSET CONEXAO = SERVER.CREATEOBJECT("ADODB.CONNECTION")CONEXAO.OPEN "PROVIDER = MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & SERVER.MAPPATH("/login/bdrgal.mdb")SET RSTABELA = CONEXAO.EXECUTE ("SELECT * FROM Tabela")SENHABD = RSTABELA("senha")SENHAANTIGA = SERVER.HTMLENCODE(REQUEST("tx_senhaantiga"))SENHANOVA = SERVER.HTMLENCODE(REQUEST("tx_senhanova"))IF SENHAANTIGA = SENHABD THENCONEXAO.EXECUTE("UPDATE Tabela set senha=" & TRIM(SENHANOVA))ELSERESPONSE.WRITE "SENHAS NÃO CONFEREM"END IF %>
tenta assim tiro o on error, pq ele faz NÃO mostrar erro, ou seja, você não sabe oue pode estar acontecendo =)
abraços