Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal boa noite!
Sou novo em ASP, na verdade estou fazendo mais como Hobby porque meu conhecimento em tecnologia é focado em outra área, no entanto gosto da linguagem e preciso resolver um probleminha que nao estou conseguindo de maneira nenhuma.
Estou querendo gravar todos usuario que tentam logar no sistema, mas nao estou conseguindo, vcs podem me ajudar?
O codigo que está na pagina default.asp é o seguinte:
<%@ Language=VBScript %>
<% Option Explicit %>
<% session.LCID=1046 %>
<!--#include file="configuracoes.asp"-->
<%
dim varstatus, usuario, senha, erro, login, nometime,hora, ip
varstatus = request.QueryString("login")
usuario = request.Form("usuario")
senha = request.Form("senha")
erro = request.QueryString("erro")
if varstatus = 2 then
dim rsUsuario, strUsuario, strUsuarios
set rsUsuario = server.createobject("ADODB.Recordset")
strUsuario = "SELECT * FROM cadastro WHERE login = '"&usuario&"' and senha = '"&senha&"' and ativo = 'S' "
rsUsuario.open strUsuario, objConn, 3, 3
if rsUsuario.bof then
response.Redirect("http://www.loginsession/default.asp?erro=1")
else
login = rsusuario("login")
usuario = rsusuario ("nometime")
hora = time
ip = Request.ServerVariables("REMOTE_ADDR")
strUsuarios = "INSERT INTO log (login,nometime,date,hora,ip) VALUES ('" &login& "','" &usuario& "','" &date& "','" &hora& "','" &ip& "')"
response.write (strusuarios)
set rsusuario = objconn.execute(strUsuarios)
session("logado") = rsUsuario("cod")
session.Timeout = 240
response.Redirect("index2.asp")
end if
rsUsuario.close
set rsUsuario = nothing
end if
%>
ERRO:
INSERT INTO log (login,nometime,date,hora,ip) VALUES ('Futsal','Novo Futsal','21/6/2009','21:46:33','201.93.209.230')
Microsoft JET Database Engine error '80040e14'
Syntax error in INSERT INTO statement.
/loginsession/default.asp, line 61
A linha 61 é: set rsusuario = objconn.execute(strUsuarios)
Se tiverem alguma dica de segurança em agradeço tbm... hehe
Aguardo ajuda pessoal....
Valeu....
acredito que o erro seja de palavra reservado
no caso date
experimente usar entre colchete
[date]
Pessoal obrigado pela resposta mas infelizmente ainda NAO deu certo.
o banco é access e tudo campo texto, me falaram para colocar campo texto para nao ter problema com data e hora.
coloquei [date] e tbm NAO deu certo
Se tiverem mais dicas eu agradeço....
Verifique a ortografia. pode ser uma coluna Invalida nome 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.
veja nesta linha do seu script
dim varstatus, usuario, senha, erro, login, nometime,hora, ip
coloque assim
dim varstatus, usuario, senha, erro, login, nometime, hora, ip
[]'s
texto para data e hora é uma péssima solução
quem lhe disse isso lhe deu uma ajuda as avessas
---------------
o erro continua o mesmo?
Patrique tarde...
coloquei a linha que você pediu...
dim varstatus, usuario, senha, erro, login, nometime, hora, ip
Mas infelizmente tbm NAO deu certo....
Mario tarde...
Não foi o contrario que me falaram
de DATA para TEXTO
Continuo no aguardo pessoal
Abs
faça assim..
strUsuarios = "INSERT INTO log (login,usuario,nometime,date,hora,ip) VALUES ('" &login& "','" &usuario& "','" &date& "','" &hora& "','" &ip& "')"
tava faltando especificar usuario no insert into.
Agora vai.
[]'s
já estava patrique
é o campo nometime
mas voltando a historia
como disse campo TEXTO é para textos
se vai armazenar datas ou hora use os tipos de dados corretos que não terá problemas
quanto ao erro atual como está seu código e qual o erro atual
este erro pode ver que você quer utilizar uma palavra reservada como uma coluna ou alias nome (ou utilizar uma coluna nome que começa com um número de caracteres alfanuméricos ou não), não delimitar um valor adequado, ou realmente tem um erro de sintaxe.
Opa, é verdade, me confundi com aquele nometime.
coloque tudo
[log] ([login],[usuario],[nometime],[date],[hora],[ip])
entre colchetes e teste
Pessoal, primeiramente obrigado pelo apoio que estão me dando...
Mario bom dia! colocando entre [] ficou da seguinte forma:
strUsuarios = "INSERT INTO [log] ([login],[usuario],[nometime],[date],[hora],[ip]) VALUES ('" &login& "','" &usuario& "','" &[date]& "','" &hora& "','" &ip& "')"
Infelizmente NAO funcionou...
Mario bom dia!
Eu coloquei campo TEXTO justamente pq eu não sei a sintaxe correta dos campos data e hora, então coloquei como TEXTO para facilitar.
a respeito do codigo está assim:
<%@ Language=VBScript %>
<% Option Explicit %>
<% session.LCID=1046 %>
<!--#include file="configuracoes.asp"-->
<%
dim varstatus, usuario, senha, erro, login, nometime, hora, ip
varstatus = request.QueryString("login")
usuario = request.Form("usuario")
senha = request.Form("senha")
erro = request.QueryString("erro")
if varstatus = 2 then
dim rsUsuario, strUsuario, strUsuarios
set rsUsuario = server.createobject("ADODB.Recordset")
strUsuario = "SELECT * FROM cadastro WHERE login = '"&usuario&"' and senha = '"&senha&"' and ativo = 'S' "
rsUsuario.open strUsuario, objConn, 3, 3
if rsUsuario.bof then
response.Redirect("http://loginsession/default.asp?erro=1")
else
login = rsusuario("login")
usuario = rsusuario ("nometime")
hora = time
ip = Request.ServerVariables("REMOTE_ADDR")
strUsuarios = "INSERT INTO [log] ([login],[nometime],[date],[hora],[ip]) VALUES ('" &login& "','" &usuario& "','" &[date]& "','" &hora& "','" &ip& "')"
response.write (strUsuarios)
set rsusuario = objconn.execute(strUsuarios)
session("logado") = rsUsuario("cod")
session.Timeout = 240
response.Redirect("index2.asp")
end if
rsUsuario.close
set rsUsuario = nothing
end if
%>
ERRO ATUAL:
INSERT INTO [log] ([login],[nometime],[date],[hora],[ip]) VALUES ('novofutsal','Novo Futsal','24/6/2009','10:22:45','201.92.153.104')
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/loginsession/default.asp, line 62
Linha 62 é a linha: session("logado") = rsUsuario("cod")
Coninuo no aguardo...
Valeu pessoal...
Pessoal uma boa noticia.... TA GRAVANDO NO BANCO, mas o unico problema que ta dando erro:
INSERT INTO [log] ([login],[nometime],[date],[hora],[ip]) VALUES ('novofutsal','novo Futsal','24/6/2009','10:55:38','201.92.153.104')
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/loginsession/default.asp, line 62
Linha 62 o codigo é: session("logado") = rsUsuario("cod")
Valeu...
Esse erro é depois do seu INSERT, você tem algum SELECT após ele?
Ops,agora que reparei melhor seu código. Não use SET para INSERT e UPDATE, use diretamente o .EXECUTE do seu objeto de conexão. Retire e teste novamente.
De:
set rsusuario = objconn.execute(strUsuarios)
Para:
objconn.execute(strUsuarios)
Salgado bom dia!
Obrigado pela resposta rápida....
FUNCIONOUUUUUUUUU...
Pessoal quero AGRADECER a todos que de qualquer forma me ajudaram a resolver essa pendencia, pq realmente estou querendo pegar firme na programacao e nao conheco muito
E com certeza se tiver duvidas ou problemas colocarei aqui por causa da atenção de vcs.....
Abs
Guilherme
beleza,
Que bom que conseguimos te ajudar.
que bom que resolveu
era alguma palavra reservada mesmo o primeiro erro e com os colchetes deve ter corrigido
Cara,
Parece simples ao mesmo tempo que nao é....
Seu banco de dados é access, certo ???
COmo está estruturado o TIPO das colunas date e hora ???
Acho que o erro está simplesmente no formato de data e hora que o access LÊ !!!
Tente mudar os tipos para texto, e executar, se funcionar, voce vai ter que dar uma pesquisada como que deve ser inserido data e hora no access...
Se eu nao me engano era alguma coisa tipo'#AAAA-MM-DD HH:mm:ss#' ou alguma coisa assim.
De qualquer forma, faça o que eu disse, mude para texto e teste, dependendo do resultado voce pesquisa na net, ou posta aqui de novo !!
Abracos !