Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema De Login


cear

Pergunta

Boas ....

Tenho um pequeno problema com os dados que aparecem... tenho uma base de dados com os seguintes campos... user, pass, nome e socio.... tenho um ficheiro index.asp com o seguinte codigo:

<html>

<head>

<title>Área Administrativa</title>

</head>

<body bgcolor=ffffff>

<script language="JavaScript" type="text/javascript">

<!--

if (!(document.layers)) {

document.write('<style type="text/css">\

.bt{color:#ffffff;background-color:#0099ff;border: 1px solid #590808;}\

</style>');

}

//-->

</script>

<table border=0 cellpadding=0 cellspacing=0 width=100% height=100%>

<tr>

<td width=37% height=33%>

</td>

<td width=20% height=33%>

</td>

<td width=38% height=33%>

</td>

</tr>

<tr>

<td width=37% height=33%>

</td>

<td width=25% height=33% align=center>

<table border=1 cellpadding=0 cellspacing=0 bordercolor=000000 style="border-collapse:collapse" width=100%>

<tr>

<td bgcolor=0099ff align=center width=100%>

<font face="Verdana" color=ffffff size=2>

<b>Área Administrativa</b>

</td>

</tr>

<tr>

<td width=100% align=center bgcolor=dddddd>

<table border=0 width=90%>

<tr>

<td>

<form method="post" action="logar.asp">

<font face="Verdana" color=000000 size=1>

Usuário:

</td>

<td align=right>

<input type="text" name="user" size=20>

</td>

</tr>

<tr>

<td>

<font face="Verdana" color=000000 size=1>

Senha:

</td>

<td align=right>

<input type="password" name="pass" size=20>

</td>

</tr>

<tr>

<td align=right colspan=2>

<font face="Verdana" color=ff0000 size=1>

<b>

<%

if request.querystring("erro")=1 then

response.write "Login ou Senha Incorreto ! &nbsp; &nbsp; "

end if

%>

</b>

<input type="submit" name"entrar" value="Login" class="bt">

</form>

</td>

</tr>

</table>

</td>

</tr>

</table>

</td>

<td width=38% height=33%>

</td>

</tr>

<tr>

<td width=37% height=33%>

</td>

<td width=20% height=33%>

</td>

<td width=38% height=33%>

</td>

</tr>

</table>

</body>

</html>

outro com logar.asp com o seguinte codigo:

<html>

<body bgcolor=ffffff>

<%

validpwd="false"

usuario=request.form("user")

senha=request.form("pass")

If usuario<>"" and senha<>"" Then

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("users.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

If not rs.eof then

If rs("pass")=senha and rs("user")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

If validpwd="true" Then

Session("status") = "login"

response.redirect "entrou.asp"

End If

End If

If validpwd="false" Then

response.redirect "index.asp?erro=1"

End If

%>

</body>

</html>

e um chamado entrou.asp com o seguinte codigo:

<%

if Session("status")<>"login" then

response.write rs.filds("nome")

end if

session("status")=""

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("users.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users")

nome = rs("nome")

socio = rs("socio")

%>

<html>

<head>

<title>Logado</title>

</head>

<body leftmargin=0 topmargin=0 text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#0000FF" alink="#FF0000">

<table border=0 width="100%" cellspacing=3 cellpadding=3>

<tr>

<td align="left"><font face="verdana" size=2>

Olá <b><% = nome %></b>, você está logado(a)!</font></td>

<td align="right"><font face="verdana" size=2><a href="index.asp">Sair</a></font></td>

</tr>

<tr><td colspan=2><hr></td></tr></table>

Nome:<%= nome %><br>

Sócio: <%= socio %>

</html>

mas quando faço o login aparece sempre os dados do primeiro registo da base de dados.... alguém me pode ajudar????

Obrigado

Link para o comentário
Compartilhar em outros sites

25 respostass a esta questão

Posts Recomendados

  • 0
você tem que colocar um WHERE nessa consulta
Set rs = conn.Execute( "Select * from users")
para definir qual registro se refere.

Mas já esta lá... certo???? tenho de colocar esse codigo na pagina do entrou.asp??? é como disse ontem eu não percebo nada disto... ainda estou a entender...

Mas obrigado pela paciencia.

Link para o comentário
Compartilhar em outros sites

  • 0
entrou.asp wink.gif

mas eu acho que já está la´!!! como devo mesmo de colocar...

mais uma vez peço desculpa porque sou um chato do caraças...

já agora se eu colocar mais um campo na base de dados como devo de por no codigo... e que queria acrescentar mais um campo a dizer 2005 que era para colocar nesse campo Ex: pronto

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

eu coloquei assim no logar.asp

<html>

<body bgcolor=ffffff>

<%

validpwd="false"

usuario=request.form("user")

senha=request.form("pass")

If usuario<>"" and senha<>"" Then

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("users.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

If not rs.eof then

If rs("pass")=senha and rs("user")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

If validpwd="true" Then

Session("status") = "login"

Session("pass") = rs("pass")

Session("user") = rs("user")

Session("nome") = rs("nome")

Session("socio") = rs("socio")

response.redirect "entrou.asp"

End If

End If

If validpwd="false" Then

response.redirect "index.asp?erro=1"

End If

%>

</body>

</html>

a linha 47 esta em branco....

meus deus vou ficar malucooooooo... tou a brincar...

Link para o comentário
Compartilhar em outros sites

  • 0

Agora da me o erro

Microsoft VBScript compilation error '800a03f6'

Expected 'End'

/logar.asp, line 50

<html>

<body bgcolor=ffffff>

<%

validpwd="false"

usuario=request.form("user")

senha=request.form("pass")

If usuario<>"" and senha<>"" Then

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("users.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

If not rs.eof then

If rs("pass")=senha and rs("user")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

If validpwd="true" Then

Session("status") = "login"

Session("pass") = rs("pass")

Session("user") = rs("user")

Session("nome") = rs("nome")

Session("socio") = rs("socio")

response.redirect "entrou.asp"

End If

If validpwd="false" Then

response.redirect "index.asp?erro=1"

End If

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

%>

</body>

</html>

a linha 50 é Set conn=Nothing

Link para o comentário
Compartilhar em outros sites

  • 0

tive a fazer tudo de novo... então o codigo fica assim no logar.asp

<html>

<body bgcolor=ffffff>

<%

validpwd="false"

usuario=request.form("user")

senha=request.form("pass")

If usuario<>"" and senha<>"" Then

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("users.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

If not rs.eof then

If rs("user")=senha and rs("pass")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

If validpwd="true" Then

Session("status") = "login"

Session("user") = rs("user")

Session("pass") = rs("pass")

Session("nome") = rs("nome")

Session("socio") = rs("socio")

response.redirect "entrou.asp"

End If

End If

If validpwd="false" Then

response.redirect "index.asp?erro=1"

End If

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

%>

</body>

</html>

e da o erro

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'rs'

/logar.asp, line 35

que e onde diz

Session("user") = rs("user") onde ele usa o primeiro rs

se poderes ver o que é agradecia...

Bigado

Link para o comentário
Compartilhar em outros sites

  • 0

não sera que o codigo

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

não terá de ser colocada na pagina entrou.asp???

para que quando o utilizador se logar não apareca o primeiro registo mas sim o dele????

obigado

Link para o comentário
Compartilhar em outros sites

  • 0

Carlos, você mudou o que eu coloquei la em cima? tava puxando errado porque estava:

response.write rs("nome")

mas criou-se uma session e então o correto é chamar pela session

response.write session("nome")

Não precisa usar outra sql, sendo que colocou-se a session justamente para não precisar dessa sql.

aqui funciona certinho, pegando o usuario correspodente... veja como está ai ok

post anterior:

<%

if Session("status")<>"login" then

response.write Session("nome")

end if

session("status")=""

nome = session("nome")

socio = session("socio")

%>

Link para o comentário
Compartilhar em outros sites

  • 0

Boas... Andreia ake codigo estava a funcionar direitinho mas tava testando com ouser e a pass igual... ou seja User: teste Pass: teste, mas quando eu troco a pass ele já dá como login errado... já testei com outros user e da-me igual... se o user for igual a pass ele funciona se não for ele da erro... Sabe o que possa ser????

Obigado

Link para o comentário
Compartilhar em outros sites

  • 0
Estranho Carlos, porque quando eu testei aqui foi com vários usuários.

Tente imprimir a consulta SQL pra ver o q está retornando da tabela.

logar.asp

<html>

<body bgcolor=ffffff>

<%

validpwd="false"

usuario=request.form("user")

senha=request.form("pass")

If usuario<>"" and senha<>"" Then

Conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("Dados.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")

conn.open Conexao

Set rs = conn.Execute( "Select * from users where user='"&usuario&"' and pass='"&senha&"'")

If not rs.eof then

If rs("user")=senha and rs("pass")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

If validpwd="true" Then

Session("status") = "login"

Session("user") = rs("user")

Session("pass") = rs("pass")

Session("nome") = rs("nome")

Session("socio") = rs("socio")

session("a") = rs("a")

session("b") = rs("b")

session("c") = rs("c")

session("d") = rs("d")

session("e") = rs("e")

session("f") = rs("f")

session("g") = rs("g")

session("h") = rs("h")

session("i") = rs("i")

session("j") = rs("j")

session("k") = rs("k")

session("l") = rs("l")

session("n") = rs("n")

response.redirect "entrou.asp"

End If

End If

If validpwd="false" Then

response.redirect "index.asp?erro=1"

End If

rs.Close

Set rs=Nothing

conn.Close

Set conn=Nothing

%>

</body>

</html>

entrou.asp

<%

if Session("status")<>"login" then

response.write Session("nome")

end if

session("status")=""

nome = session("nome")

socio = session("socio")

a = session("a")

b = session("b")

c = session("c")

d = session("d")

e = session("e")

f = session("f")

g = session("g")

h = session("h")

i = session("i")

j = session("j")

k = session("k")

l = session("l")

n = session("n")

%>

<html>

<head>

<title>Logado</title>

</head>

<body leftmargin=0 topmargin=0 text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#0000FF" alink="#FF0000">

<table border=0 width="100%" cellspacing=3 cellpadding=3>

<tr>

<td align="left"><font face="verdana" size=2>

Olá <b><% = nome %></b>, você está logado(a)!</font></td>

<td align="right"><font face="verdana" size=2><a href="index.asp">Sair</a></font></td>

</tr>

<tr><td colspan=2><hr></td></tr></table>

Nome:<%= nome %><br>

Aplido: <%= socio %><br>

2005: <%= a %><br>

2004: <%= b %><br>

2003: <%= c %><br>

2002: <%= d %><br>

2001: <%= e %><br>

2000: <%= f %><br>

1999: <%= g %><br>

1998: <%= h %><br>

1997: <%= i %><br>

1996: <%= j %><br>

1995: <%= k %><br>

1994: <%= l %><br>

1993: <%= n %>

</html>

Axa que me consegue ver o que se passa?

Muito obigado

Link para o comentário
Compartilhar em outros sites

  • 0

Carlos, o erro era bem simples.

Veja como estava este trecho:

If not rs.eof then

If rs("user")=senha and rs("pass")=usuario Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

Ele não passava naquela condição porque user não é senha, e pass não é usuario, está invertido.

o correto é assim:

If not rs.eof then

If rs("user")=usuario and rs("pass")=senha Then

validpwd="true"

Else

validpwd="false"

End If

Else

validpwd="false"

end if

Por isso que o seu acesso "cear" "cear" funcionava, porque era o unico que tinha user e pass iguais.

O resto está ok, altere ai ta wink.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...