Ir para conteúdo

Arquivado

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

estranho.com

[Resolvido] s com banco de dados

Recommended Posts

Olá galera...

estou apanhando de um banco de dados aqui.. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

tenho duas duvidas crueis...

 

 

1

uma é como inserir no meu banco de dados as informações do cliente quando ele estiver logando, já consegui capturar os dados que eu quero (IP, DATA, USUARIO) só nao consigo inserir durante a validação do login sem q ele perceba..

 

2

e a outra duvida um pouco mais trabalhosa é quando ele quiser ver os seu doctos terá uma lista do tipo separado por categorias...

 

como devo fazer.... sendo q eu usarei uma tabela de categorias, outra para doctos e uma outra para os dados do cliente????

 

Desde já agradeço....

Compartilhar este post


Link para o post
Compartilhar em outros sites

a primeira duvida um simples insert resolve como esta tentando fazer?a segunda eu nao entendi direito o que quer, o que seria este doctor e como esta o relacionameto destas tabelas

Compartilhar este post


Link para o post
Compartilhar em outros sites

a primeira duvida um simples insert resolve como esta tentando fazer?a segunda eu nao entendi direito o que quer, o que seria este doctor e como esta o relacionameto destas tabelas

O INSERT JA TENTEI DE VARIAS MANEIRA MAIS É MAIS OU MENOS ASSIM
SelectCommand="SELECT ID, DATA, USUARIO"InsertCommand="INSERT INTO siteusers(ID, DATA, USUARIOS) VALUES ('"&ID&"', '"&DATA&"', '"&USUARIOS&"')"
Na segunda é assim o cliente loga e visualisa os documentos da empresa tipo:- doctos constitucionais- doctos federais- doctos estaduais- doctos municipaisessas são as categorias dentro delas terão os respectivos link's para baixar tais documentos...a respeito das tabelas eu fiz assimuma com os dados do clientes com a chave primaria no campo cod_cliente - na outra a tabela de categoria com cod_cat - e na tabela de documentos com os campos cod_cat - cod_client - documento..... acho q é mais ou menos por ai... certo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos ajeitar a primeira primeiro que é mais simplesos campos sao todos strings mesmo? pois seu codigo está como se fosse, se ID for numerico e Data for do tipo data mesmo teremos que mudar alguma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos ajeitar a primeira primeiro que é mais simplesos campos sao todos strings mesmo? pois seu codigo está como se fosse, se ID for numerico e Data for do tipo data mesmo teremos que mudar alguma coisa

Vou postar o meu codgo pra você ver como tá...

Compartilhar este post


Link para o post
Compartilhar em outros sites

os campos do db sao de que tipos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

TAI MEU CODIGO

 

 

 

ASP
<%
Option Explicit
Dim sql,rsUser,username,password,page,stayloggedin,LConnectString,lconn,sqlflag
 
 
'capturar as variáveis submetidas (a página é a página que vieram de, se ajustaram pela variável escondida na caixa do início de uma sessão)
username = Request.Form("username")
password = Request.Form("password")
page = Request.Form("page")
stayloggedin = Request.Form("stayloggedin")
 
if page = "" then
        page = "index.asp"
end if
 
'Não verificar nenhum ** t de s está tentando cortar em usar comandos do SQL
if InStr(username, "'") or InStr(username, """") or InStr(username, "=") or InStr(password, "'") or InStr(password, """") or InStr(password, "=") then
        sqlflag = True
end if
 
'Abrir a conexão
 
 
Dim ConnectString, conn
 
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ban/siteusers.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
'Começar um recordset que corresponde ao username e à senha submetidos
sql = "SELECT username FROM users WHERE username = '" & username & "' AND password = '" & password & "'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3
 
 
'Capturar ip da maquina
[color="#FF0000"]Dim ip
ip = Request.ServerVariables("REMOTE_ADDR")[/color]
 
'Capturar data atual
 
[color="#FF0000"]Dim Data
 
Data = Date() [/color]
 
'Capturar usuario
[color="#FF0000"]
 Dim nome
 nome = username[/color]
 
'enviar dados do cliente para tabela visitas
 
[color="#FF0000"]????????????
?????????[/color]
 
'Se houver um recordset válido lá, emiti-los então para index, com o cookie do username
If (not rsUser.BOF) and (not rsUser.EOF) and sqlflag <> True then
  Response.Cookies("username") = rsUser("username")
 
 
  'Se o usuário quiser salvar seus dados, então nós ajustaremos o cookie com uma data que expire
  if stayloggedin = "yes" then
        Response.Cookies("username").expires = #1/1/2010#
  end if
  rsUser.close
  set rsUser = nothing
  conn.close
  set conn = nothing
  Response.Redirect(page)
 
end if
 
'Se não, indicar uma senha inválida na entrada
rsUser.close
set rsUser = nothing
conn.close
set conn = nothing
%>

 

vlwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

e os campos no db sao de que tipos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e onde esta o erro atualmente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe ai a sql que insere e poe o erro que esta dando tambem, so o primeiro campo é numerico certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

poe ai a sql que insere e poe o erro que esta dando tambem, so o primeiro campo é numerico certo?

SIM SO O PRIMEIRO CAMPO É NUMERICO ... MAIS NAO ESTOU CETANDO ELE PQ É AUTO NUMERICOTipo de erro:Microsoft JET Database Engine (0x80040E10)Nenhum valor foi fornecido para um ou mais parâmetros necessários./site/seac/novo/signin.asp, line 57<%Dim ConnectString, connConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ban/siteusers.mdb")Set conn = Server.CreateObject("ADODB.Connection")conn.open ConnectString%><%'Começar um recordset que corresponde ao username e à senha submetidossql = "SELECT username FROM users WHERE username = '" & username & "' AND password = '" & password & "'"Set rsUser = Server.CreateObject("ADODB.Recordset")rsUser.Open sql, conn, 3, 3'Capturar ip da maquinaDim ipip = Request.ServerVariables("REMOTE_ADDR")'Capturar data atualDim DataData = Date() 'Capturar usuario Dim nome nome = username'enviar dados do cliente para tabela visitas'ActiveConnectionvis = "SELECT username FROM visitas"Set rsUser = Server.CreateObject("ADODB.Recordset")rsUser.Open vis, conn, 3, 3 'O ERRO ESTA AQUI...............................rsUser.AddNewrsUser("ip") = iprsUser("data") = DatarsUser("nome") = nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta estranhode onde voce esta pegando o username? pois voce esta selcionando em uma consulta usando ele mesmo que ainda nao vi de onde começa essa historia

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta estranhode onde voce esta pegando o username? pois voce esta selcionando em uma consulta usando ele mesmo que ainda nao vi de onde começa essa historia

eu pego de um fomulario do index que envia para essa pagina de validação<%Option ExplicitDim sql,rsUser,username,password,page,stayloggedin,LConnectString,lconn,sqlflag,vis'capturar as variáveis submetidas (a página é a página que vieram de, se ajustaram pela variável escondida na caixa do início de uma sessão)username = Request.Form("username")password = Request.Form("password")page = Request.Form("page")stayloggedin = Request.Form("stayloggedin")if page = "" then page = "index.asp"end if'Não verificar nenhum ** t de s está tentando cortar em usar comandos do SQLif InStr(username, "'") or InStr(username, """") or InStr(username, "=") or InStr(password, "'") or InStr(password, """") or InStr(password, "=") then sqlflag = Trueend if'Abrir a conexãoDim ConnectString, connConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ban/siteusers.mdb")Set conn = Server.CreateObject("ADODB.Connection")conn.open ConnectString'Começar um recordset que corresponde ao username e à senha submetidossql = "SELECT username FROM users WHERE username = '" & username & "' AND password = '" & password & "'"Set rsUser = Server.CreateObject("ADODB.Recordset")rsUser.Open sql, conn, 3, 3'Capturar ip da maquinaDim ipip = Request.ServerVariables("REMOTE_ADDR")'Capturar data atualDim DataData = Date() 'Capturar usuario Dim nome nome = username'enviar dados do cliente para tabela visitas'ActiveConnectionvis = "SELECT username FROM visitas"Set rsUser = Server.CreateObject("ADODB.Recordset")rsUser.Open vis, conn, 3, 3rsUser.AddNewrsUser("ip") = iprsUser("data") = DatarsUser("nome") = nome'Se houver um recordset válido lá, emiti-los então para index, com o cookie do usernameIf (not rsUser.BOF) and (not rsUser.EOF) and sqlflag <> True then Response.Cookies("username") = rsUser("username") 'Se o usuário quiser salvar seus dados, então nós ajustaremos o cookie com uma data que expire if stayloggedin = "yes" then Response.Cookies("username").expires = #1/1/2010# end if rsUser.close set rsUser = nothing conn.close set conn = nothing Response.Redirect(page)end if'Se não, indicar uma senha inválida na entradarsUser.closeset rsUser = nothingconn.closeset conn = nothing%><html><head><title>Invalid entry</title></head><body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000"><font face="arial,helvetica" size=2 color="#000000"><h3>Nome de usuário/senha inválidos</h3><p><a href="java script:self.history.go(-1)"><b>Tente novamente</b></a></p><%Response.Write (ip) %><%Response.Write (Data)%><%Response.Write (nome)%></font></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

seleciona todos os campos que voce vai colocar novos valores

 

em vez de

 

vis = "SELECT username FROM visitas"

ponha

 

vis = "SELECT username, ip, nome, data FROM visitas"

veja se estes campos realmente fazem parte desta tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

seleciona todos os campos que voce vai colocar novos valoresem vez de

vis = "SELECT username FROM visitas"
ponha
vis = "SELECT username, ip, nome, data FROM visitas"
veja se estes campos realmente fazem parte desta tabela
ficou assimvis = "SELECT ip, data, nome FROM visitas"e no banco esta identicoDeu esse erroTipo de erro:Microsoft JET Database Engine (0x80040E09)Não é possível atualizar. O banco de dados ou o objeto é somente leitura./site/seac/novo/signin.asp, line 56

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente mudar o cursortypersUser.Open vis, conn, 2, 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o banco nao esta somente leitura? so por perguntar mesmo pois nao faz muito sentido

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.