Olá, Karol! Cá estamos novamente...
Olha só... Vou te ensinar a fazer de um jeito que vai dar certo, vai servir para o q vc quer. Mas não é seguro, ok? Depois te falo o pq...
Em primeiro lugar... No ASP e no PHP, variáveis postadas por formulários usando diferentes métodos são recebidas de forma diferente. O bom é q são só dois métodos: GET e POST.
Naquele código gigante que te mostrei ali em cima, ensinando como fazer seu restrito.asp, estávamos buscando variáveis vindas pelo método GET. Portanto, se vc colocar no seu formulário "method=GET", irá funcionar, mas já sei q depois de vc testar, vc vai me falar q a senha está aparecendo na barra de endereços, e vc não quer isto. Portanto, vamos logo ensinando a fazer também pelo método POST.
Qdo o método de envio de dados utilizado num formulário for o POST, para resgatar as variáveis no script de destino, basta fazer assim:
request.form("campo")
Ou seja... Para o nosso exemplo, basta ir lá no restrito.asp e trocar:
Usuario=request.querystring("usuario")
Senha=request.querystring("senha")
Por:
Usuario=Request.Form("usuario")
Senha=Request.Form("senha")
Pronto! Isto deve funcionar.
Próxima dúvida: como redirecionar o usuário para a página desejada depois? Para redirecionar o usuário vc usa a função Response.Redirect(). Experimente colocar seu restrito.asp deste jeito:
<%
Usuario=Request.Form("usuario")
Senha=Request.Form("senha")
Set con=Server.CreateObject("ADODB.Connection")
con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd1.mdb")
Set busca=con.Execute("SELECT COUNT(*) FROM usuarios WHERE usuario='" & usuario & "' AND senha='" & senha & '")
if busca(0)="1" then
Response.Redirect("principal.htm")
else: Response.Redirect("restrito.html")
end if
%>
Se quiser, pode criar uma outra página com uma mensagem de que a senha foi digitada incorretamente e redirecionar para ela no "else: " do código acima. Ou então, vc pode renomear sua página restrito.html para login.asp, para poder usar scripts em ASP. Vou te mostrar pq isto pode ser interessante...
Faça o seguinte... Deixe o código da página restrito.html como está! Só renomeie o arquivo para login.asp. Agora abra o código e procure no código depois do formulário, em uma posição onde poderia aparecer uma mensagem, inserindo o seguinte:
<%if Request.QueryString("erro")<>"" then Response.Write("Usuário e/ou senha não conferem.")%>
Agora troque o código da restrito.asp para o seguinte:
<%
Usuario=Request.Form("usuario")
Senha=Request.Form("senha")
Set con=Server.CreateObject("ADODB.Connection")
con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd1.mdb")
Set busca=con.Execute("SELECT COUNT(*) FROM usuarios WHERE usuario='" & usuario & "' AND senha='" & senha & '")
if busca(0)="1" then
Response.Redirect("principal.htm")
else: Response.Redirect("login.asp?erro=1")
end if
%>
Faça o teste! Neste caso, quando no script restrito.asp se verificar que o usuário e a senha não estão cadastrados no banco, será redirecionado para a página login.asp enviando a variável erro=1 pelo método GET para a mesma. Lembre-se que recuperar variável vinda pelo método GET é chamando a função Request.QueryString(), por isto usei ela na página login.asp.
Bom... Muita informação para uma só resposta. Brinque bastante com os códigos que aqui postei, aprenda bastante coisa e volte no caso de mais dúvidas, ok?
A propósito... Fiquei de lhe falar pq este código não é seguro, certo?
É simples! Depois de feito todo este trabalho, basta vc digitar no seu navegador o endereço direto para a página principal.htm. Vc verá q vc entrará sem precisar de digitar senha!
Primeiro vc aprende bastante isto q te falei aqui. Depois vc procura informações sobre "sessão", e como ela pode te ajudar neste problema. Lembre-se.. Estaremos aqui, caso precise de ajuda!
Um abraço,
Thales Medeiros.