Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wiltim

Validar Senha... O que está errado neste código???

Recommended Posts

Não consigo fazer funcionar o código abaixo. Fica dando problema na string do SQL. Alguém pode ajudar e escrever o código da forma correta????Muito grato...<html><head><title>Documento sem título</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><% Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("../../data/login.mdb") ComandoSQL = "SELECT login, senha as ok from tab_login WHERE login='"&Request.Form("login")&" AND senha='"&Request.Form("senha")&""RS.Open ComandoSQLif RS.EOF thenResponse.Write = "usuário ou senha inválidos..."elseresponse.redirect "(entradados.asp)"Session("login_ok") = 1Session("login_login") = RS("login")end if%></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme sua sugestão, substitui o SQL e inverti o Redirect, porém, não deu certo..... Apareceu o seguinte erro:Erro de tempo de execução do Microsoft VBScript error '800a01a8' Objeto necessário: '' verificausu.asp, line 14 Este é o código completo:<html><head><title>Documento sem título</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><% Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("../../data/login.mdb") ComandoSQL = "SELECT * from tab_login WHERE login='"&Request.Form("login")&" AND senha='"&Request.Form("senha")&""RS.Open ComandoSQLif RS.EOF thenResponse.Write = "usuário ou senha inválidos..."elseSession("login_ok") = 1Session("login_login") = RS("login")response.redirect "(entradados.asp)"end if%></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o seu selece for este mesmo... está faltando umas aspas simples...

 

dá uma olhada...

 

ComandoSQL = "SELECT * from tab_login WHERE login='"&Request.Form("login")&" AND senha='"&Request.Form("senha")&""

 

você qdo vai fazer o where do login esquece de fechar as aspas simples do where... e na senha o mesmo...

 

ficará assim o seu select...

 

ComandoSQL = "SELECT * from tab_login WHERE login='"&Request.Form("login")&"' AND senha='"&Request.Form("senha")&"'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, já fiz tudo que sugeriram e o erro permanece. Abaixo, envio todos os códigos possíveis... O que mais é possível estar errado????Banco de dados: Login.mdbTabela: tab_loginCampos --> NOME: login TIPO: texto NOME: senha TIPO: textoARQUIVO ENTRAUSU.ASP<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Verificação do Usuário</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#fc8010" text="#000066" link="#000066"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><table width="780" border="0" cellspacing="0" cellpadding="0"> <tr> <td><p> </p> <table width="225" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF"> <tr> <td><strong><font color="#000066" size="3" face="Arial, Helvetica, sans-serif">Cadastro</font></strong></td> </tr> <tr> <td><form name="form_cadastra" method="post" action="verificausu.asp"> <p> <strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Login</font></strong><br> <input name="login" type="text" class="" id="login" size="30"> <br> <br> <font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"><strong>Senha<br> </strong></font> <input name="senha" type="text" id="senha" size="20"> </p> <p align="center"> <input type="submit" name="Submit" value="Enviar" class="botao"> </p> </form></td> </tr> </table> <p> </p> <p> </p> </td> </tr> </table></td> </tr></table></body></html>ARQUIVO VERIFICAUSU.ASP<html><head><title>Documento sem título</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><% Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("../../data/login.mdb") ComandoSQL = "SELECT * from tab_login WHERE login='"&Request.Form("login")&"' AND senha='"&Request.Form("senha")&"'"RS.Open ComandoSQLif RS.EOF thenResponse.Write = "usuário ou senha inválidos..."elseSession("login_ok") = 1Session("login_login") = RS("login")response.Redirect "entradados.asp"end if%></body></html>ERRO APRESENTADO:Erro de tempo de execução do Microsoft VBScript error '800a01a8' Objeto necessário: '' /sg-sag/administracion/reglas/verificausu.asp, line 14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste assim:

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
'Set Conexao = Server.CreateObject("ADODB.Connection")
'Conexao.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("../../data/login.mdb")

ComandoSQL = "SELECT * from tab_login WHERE login='"&Request.Form("login")&"' AND senha='"&Request.Form("senha")&"'"

Response.write ComandoSQL
'RS.Open ComandoSQL

'if RS.EOF then
'Response.Write = "usuário ou senha inválidos..."
'else
'Session("login_ok") = 1
'Session("login_login") = RS("login")
'response.Redirect "entradados.asp"
'end if
%>
</body>
</html>

E veja se a SQL está completinha, aparentemente não está recebendo uma das variáveis.

 

Valeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tente recuperar antes e jogue dentro de uma variável o login e senhalogin = request("login")senha = request("senha")ComandoSQL = "SELECT * from tab_login WHERE login='"&login&"' AND senha='"&senha&"'"ok ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é típico de quem não tá conseguindo abrir a conexão....O Rs.Open ali teu está sendo usado errôneamente....Porque: O Método Open do Objeto Rs vai executar a variável que você quiser mas ele exige de qualquer jeito que o objeto já exista(tenha sido criado) . Ali no teu código eu não estou vendo em nenhum momento tu utilizarset Rs = Server.CreateObject("ADODB.RecordSet")Beleza?Depois de criado, você vai precisar associar aquele Rs a conexão aberta com o Banco... através da opção ActiveConnectionrs.ActiveConnection = ConexaoAí sim o Rs vai estar ligado certinho e aí é só você fazer o Rs.Open nomedavariavelVocÊ pode usar também uma coisa mais simples.... (recomendo) set Rs = Conexao.Execute(variavel) que é a mesma coisa que o Rs.Open só que ele não te exige que o Objeto tenha sido criado... ok?!Abração brother, qualquer coisa escreva aí beleza?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.