Ir para conteúdo

POWERED BY:

Arquivado

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

Edson L. Zimmermann

Código presente (Proteger enquete)

Recommended Posts

Então, estou tentando fazer uma enquete que grave o ip para o usuário não poder vicar votando direto sei que dá pra fazer isso com cookies se alguém puder me ajudar no código segue abaixo:PS. procurei no forum mais não encontrei nada que eu entendi :unsure:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><%ip_voto = request.Servervariables("remote_Addr")set db = createobject("adodb.connection")constr = "driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("banco.mdb")db.open constrset rs = server.createobject("adodb.recordset")Set verificaip = server.createobject("adodb.recordset")sql = "SELECT * FROM votos WHERE IP='" & ip_votoverificaip.open(sql)IF verificaip.EOF Then op_vt = request.Form("voto") if (op_vt) = 1 then db.execute("insert into votos (vt1,vt2,ip) values(1,0,'"&ip&"')") Response.Redirect("default.asp") else db.execute("insert into votos (vt1,vt2,ip) values(0,1,'"&ip&"')") Response.Redirect("default.asp") end ifElseresponse.write("Erro!")End IF%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá algum erro?

 

Aparentemente está quase OK, apenas o SELECT que está faltando fechar as aspas simples:

sql = "SELECT * FROM votos WHERE IP='" & ip_voto &"';"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá algum erro?Aparentemente está quase OK, apenas o SELECT que está faltando fechar as aspas simples:

sql = "SELECT * FROM votos WHERE IP='" & ip_voto &"';"
É que eu não estou testando localmente mas vou olhar em casa a noite, troquei o que você falou mais não mudou o erro que dá é esse mas como eu disse não está na maquina local

Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request.Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.More information about this error may be available in the server error log.--------------------------------------------------------------------------------Web Server at ieimtaio.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa, repare que você recupera o IP em ip_voto e tenta inserir IP, caso o campo não esteja configurado para receber nulo ou vazio dá erro também. Verifique o log de erro que deve ter em seu servidor a mensagem de erro original.

Compartilhar este post


Link para o post
Compartilhar em outros sites

CertoBom o código agora está assim:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><%ip_voto = request.Servervariables("remote_Addr")set db = createobject("adodb.connection")constr = "driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("banco.mdb")db.open constrset rs = server.createobject("adodb.recordset")Set verificaip = server.createobject("adodb.recordset")sql = "SELECT * FROM votos WHERE IP='" & ip_voto &"';"verificaip.open (sql)IF verificaip.EOF Then op_vt = request.Form("voto") if (op_vt) = 1 then db.execute("insert into votos (vt1,vt2,ip) values(1,0,'"&ip_voto&"')") Response.Redirect("default.asp") else db.execute("insert into votos (vt1,vt2,ip) values(0,1,'"&ip_voto&"')") Response.Redirect("default.asp") end ifElseresponse.write("Erro!")End IF%>

E o erro é esse:

Tipo de erro:ADODB.Recordset (0x800A0E7D)A conexão não pode ser usada para realizar esta operação. Ela está fechada ou é inválida neste contexto./menonitas/vota.asp, line 13

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei algumas permissões na pasta do site na máquina local e agora roda beleza, mais no servidor on-line do erro vou postar como está o código agora e o erro on-line:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><%ip_voto = request.Servervariables("remote_Addr")set db = createobject("adodb.connection")constr = "driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("banco.mdb")db.open constrSet verificaip = server.createobject("adodb.recordset")sql = "SELECT * FROM votos WHERE IP='" & ip_voto &"';"verificaip.open sql, constr, 3,3IF verificaip.EOF Then op_vt = request.Form("voto") if (op_vt) = 1 then db.execute("insert into votos (vt1,vt2,ip) values(1,0,'"&ip_voto&"')") Response.Redirect("default.asp") else db.execute("insert into votos (vt1,vt2,ip) values(0,1,'"&ip_voto&"')") Response.Redirect("default.asp") end ifElseresponse.write("Você já participou dessa enquete obrigado!")End IF%>

Erro:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x1cc Thread 0xa40 DBC 0x2417204 Jet'. /vota.asp, line 12

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.