Jump to content
Fórum Script Brasil
  • 0

Erro 800a0bb9


Nabvchodhonozohr

Question

Olá. Alguém pode me ajudar?

Apareceu esse erro:

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/teste/processa.asp, line 24

O q tem no cód:

 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Response.Buffer = true
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
%>
<!--#include file="../connection/db_connection.inc" -->
<%
dim strlogin
dim strsenha
dim strid
strid = request.QueryString("id")

if strid = "user" then 
strlogin   = Replace(Request.Form("login"), "'", "''")
strsenha   = Replace(Request.Form("senha"), "'", "''")

if (len(strlogin) <> 0) or (len(strsenha) <> 0) then

sql = "SELECT * FROM user WHERE login LIKE '%"&cstr(strlogin)&"%' AND senha LIKE '%"&cstr(strsenha)&"%'"

set recset = Server.CreateObject("ADODB.Recordset")
recset.ActiveConnection = db_login 

Eu já tirei o cstr da string sql e não funcionou. O q eu faço?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Primeiro, lhe aconselho a testar os valores das variaveis que estao sendo usadas no SQL.

Dê um response.write no STRLOGIN e na STRSENHA.

Veja se os valores estao OK.

Depois, dê um response.write no SQL, pra ver como esta ficando, e veja se tem algo de errado.

Link to comment
Share on other sites

  • 0

Porque você esta utilizando o comando LIKE em um sql que faz LOGIN?

Por motivos de segurança, um login somente deve ser liberado caso o usuario e a senha sejam exatamente iguais àos cadastrados!

Usando LIKE, ele pega tudo que for semelhante à usuario e à senha ..!

Vamos mudar um pouco seu codigo, só pra ver se funciona:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%

Response.Buffer = true

Response.CacheControl = "no-cache"

Response.AddHeader "Pragma", "no-cache"

Response.Expires = -1

url_conexao = Server.MapPath("nome_banco.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

dim strlogin

dim strsenha

dim strid

strid = request.QueryString("id")

if strid = "user" then

strlogin  = Replace(Request.Form("login"), "'", "''")

strsenha  = Replace(Request.Form("senha"), "'", "''")

if (len(strlogin) <> 0) or (len(strsenha) <> 0) then

sql = "SELECT * FROM user WHERE login ='"& strlogin &"' AND senha ='"& strsenha &"' "

set recset = conexao.execute(sql)

A única coisa que você precisa colocar é o conteudo em vermelho. Coloque o caminho/nome do banco de dados.

Depois rode este codigo, e veja se funciona

Abraços

Link to comment
Share on other sites

  • 0

Pô cara, eu sou iniciante, valeu pelo bizú. Brigadão.

Mas quanto ao erro, eu descobri q usando uma tabela com nome 'user' não funcionava. A única mudança q eu fiz pra resolver foi mudar o nome da tabela de user para users e funcionou.

Mesmo assim valeu pelo bizú de segurança. Eu ainda estou no início da jornada.

Link to comment
Share on other sites

  • 0

Hehehe

é isso aí

Nem me liguei no lance de nomes de campos/tabelas..

Eu já me deparei com esse erro algumas vezes, mas com nomes de campos.. de tabela nunca, hehe

Bem, sobre segurança, isso que falei é somente uma das coisas que devem ser consideradas.

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...