Ir para conteúdo

POWERED BY:

Arquivado

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

GDonato

[Resolvido] Gravar usuario que loga no sistema

Recommended Posts

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....

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 !

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que o erro seja de palavra reservado

 

no caso date

 

experimente usar entre colchete

 

[date]

Compartilhar este post


Link para o post
Compartilhar em outros sites

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....

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque tudo

 

[log] ([login],[usuario],[nometime],[date],[hora],[ip])

 

entre colchetes e teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza,

 

Que bom que conseguimos te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que resolveu

 

era alguma palavra reservada mesmo o primeiro erro e com os colchetes deve ter corrigido

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.