.NET

22 jun, 2009

ASP – Sistema Administrativo

Publicidade

Neste artigo, veremos como ter sistemas administrativos, onde poderemos fazer Login e entrar na parte administrativa de um site. Aí teremos uma página de administração, onde será possível pesquisar, incluir, excluir, atualizar e, caso o user tenha esquecido sua senha, recupera-la. Começaremos pela estrutura de banco de dados. Hoje utilizaremos o MS Access, com um banco chamado quaddra e a tabela de Login, segue abaixo:

Tabela – login:

  • Login – Texto – login do user (cliente)
  • Email – Texto – email do user para quando esquecer senha ,ter um campo a + p/ procura
  • Senha – Texto – senha do user
  • Código – Numeração Automática – codigo para identificar o user

Vamos começar com o formulário para efetuar o login.

Logincli_form_triena.asp

<% Option Explicit 
'declara as var
dim varmsgeof, bc, data
'recupera a msgeof do erro no login_action
varmsgeof=request.querystring("msgeof")%>

<script language="javascript">
function novajan(){
window.open ("erro_treina.asp","Erro","width=240,height=240,scrollbar=no,status=yes,resize=no")
}
</script>
<script language="JavaScript">
function novajan1(){
window.open("terminar_treina.asp","Encerrar", "width=260,height=240,status=yes,scroolbars=no,toolbar=no")}
</script>
<script language="JavaScript">
function novajan2(){
window.open("efetuarlog_treina.asp","Encerrar", "width=150,height=240,status=yes,scroolbars=no,toolbar=no")}
</script>
<%
Select case varmsgeof
case 1 'login vazio
response.write("<script>novajan();</script>")
case 2 'senha vazia
response.write("<script>novajan();</script>")
case 3 'login inválido
response.write("<script>novajan();</script>")
case 4 'senha incorreta
response.write("<script>novajan();</script>")
case 5'se user jah logado
response.write("<script>novajan();</script>")
case 6 ' user naun está logado,por isso naun tem permissaun para entrar em atualizacaun/suporte
response.write("<script>novajan2();</script>")
end select %>

<HTML>
<HEAD>
<TITLE>Login Clientes</TITLE>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<BODY bgColor=#ffffff leftMargin=18 topMargin=12>
<table width="100%" border="0" height="445">
<tr>
<td height="378"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#666666"><b><font color="#336699">::
Senhores Clientes para sua maior <br>
segurança solicitamos sua identificação <br>
para poder ter acesso a área restrita a você.</font></b></font><font face="Arial, Helvetica, sans-serif" size="1" color="#666666"><b>
</b></font></p>
<p> </p>
<form name="form1" method="post" action="logincli_action_treina.asp">
<table width="85%" border="0" cellspacing="0" cellpadding="0" bgcolor="#336699">
<tr bgcolor="#666666">
<td width="4%" bgcolor="#666699"><img src="imgs/curva.gif" width="10" height="19"></td>
<td width="96%" bgcolor="#336699"> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF"><b><font size="3">::
</font>Porfavor efetue seu login</b></font></div></td>
</tr>
<tr bgcolor="#666666">
<td width="4%" bgcolor="#336699"> </td>
<td width="96%" bgcolor="#336699"> </td>
</tr>
</table>
<table width="85%" border="0" cellspacing="0">
<tr bgcolor="#336699">
<td colspan="3"><font color="#e6e6e6" face="Verdana, Arial, Helvetica, sans-serif" size="2"><b> Login:
 
<input name=login size="12" maxlength="12">
</b></font></td>
</tr>
<tr bgcolor="#336699">
<td colspan="3"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6"><b> Senha:
<input type=password name=senha size="12" maxlength="12">
   <span class="preto">
<input type="image" border="0" name="imageField" src="imgs/enviar.gif" width="87" height="22">
</span></b></font></td>
</tr>
<tr bgcolor="#336699">
<td height="2" width="41%"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#e6e6e6"><strong>Esqueceu
a senha clike <a href="esqsenha_form_treina.asp">Aqui</a></strong></font></div></td>
<td width="42%"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#e6e6e6"><b>Para
efetuar Logo-off clique</b></font></div></td>
<td height="2" width="17%"><script type="text/javascript">
AC_FL_RunContent( 'codigobase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0','width','35','height','19','src','logoff','quality','high','pluginspage','http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash','scale','exactfit','bgcolor','#336699','movie','logoff' ); //end AC codigo
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codigobase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="35" height="19">
<param name=movie value="logoff.swf">
<param name=quality value=high>
<param name="BGCOLOR" value="#336699">
<param name="SCALE" value="exactfit">
<embed src="logoff.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" scale="exactfit" width="35" height="19" bgcolor="#336699"> </embed>
</object>
</noscript> </td>
</tr>
</table>

</form>
</td>
</tr>
</table>
</BODY></HTML>

Percebam que neste código temos um Select Case que, conforme a querystring retornada, exibirá uma determinada mensagem de erro. Quando a mensagem for exibida, ela se auto-fechará depois de 10 mil milisegundos, isso devido a chamarmos a função em Javascript fechapop na página de erro, que utilizamos o function window.setTimeout, invocando um window.close. Cada Case retornado é um erro, passado a uma variável por querystring.Abaixo o Select Case.

Select case varmsgeof
case 1 'login vazio
response.write("<script>novajan();</script>")
case 2 'senha vazia
response.write("<script>novajan();</script>")
case 3 'login inválido
response.write("<script>novajan();</script>")
case 4 'senha incorreta
response.write("<script>novajan();</script>")
case 5'se user jah logado
response.write("<script>novajan();</script>")
case 6 ' user naun está logado,por isso naun tem permissaun para entrar em atualizacaun/suporte
response.write("<script>novajan2();</script>")
end select %>

Abaixo o código que irá efetuar o login.

Para efetuar a conexão usamos um outro aqruivo que contem uma sub que é invocada no código para realizar a conexão:

Conexao1.asp

<% '----------------------
' este arq. serve para estabelecer a conexao com o BD em Access
' de nome quaddra.mdb
sub abreconexao
constring="provider=microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("db/quaddra.mdb")
Set conexao=Server.CreateObject("ADODB.Connection")
conexao.open constring
end sub

sub fechaconexao
set conexao=nothing
end sub
%>

LoginCli_action_treina.asp

<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring, rsselect, sqlselect, rsinsert, sqlinsert, rsupdate, sqlupdate,data
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
varlogin=Replace(varlogin,"'","")
varsenha=Replace(varsenha,"'","")
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if
%>
<!--#include file="conn/conexao1.asp"-->
<%
call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
if rs.eof then
response.redirect("logincli_form_treina.asp?msgeof=3")
else
if Lcase (varsenha) <> Lcase(rs("senha")) then
response.redirect("logincli_form_treina.asp?msgeof=4")
session("logado")=False
else
session("logado")=True
session("senha")=varsenha
session("login")=varlogin
response.Redirect("administracao_treina.asp")
end if
end if
set rs=nothing
call fechaconexao%>

Para esta tarefa, usamos uma string SQL SELECT para selecionar os dados.

“SELECT * FROM login WHERE login='”&varlogin&”‘”

A cláusula WHERE é usada para extrair apenas os registros que cumprir um determinado critério.

SQL WHERE Sintaxe

SELECT column_name(s)

FROM table_name

WHERE column_name operator value

Após conseguir realizar o login , o user será redirecionado para a página de administração, onde poderá selecionar os dados, excluir,atualizar e pesquisar.

Administração_treina.asp

<%response.buffer=true%>
<%
'------------------------------------------------------------------------------------------------
' Este ASP exibe td´z as opçoes para o admin fazer o controle de seu
' usuarios podendo ter total controle no BD
'------------------------------------------------------------------------------------------------
%>

<HTML>
<HEAD>
<TITLE>Administração</TITLE>

<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</HEAD>



<BODY bgColor=#ffffff leftMargin=18 topMargin=12>
<RightClick> <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="2" COLOR="#666666"><B><FONT COLOR="#336699">::
Aqui você poderá administrar sua conta, e navegar nas áreas
restritas a você cliente.<BR> </FONT> <BR> <BR> <BR> <BR> <BR> </B></FONT>
<P><FONT FACE="Arial, Helvetica, sans-serif" SIZE="1"><B>

<% 'declaro as var.
dim conexao, varmsg, rs, SQL, conDBQ, constring, varmsgeof, varloginsession, data

'recupero as var.
varmsgeof=request.querystring("msgeof")
varmsg=request.querystring("msg")
varloginsession=Session("login")
%>

<script LANGUAGE="JavaScript">
function novajan3(){
window.open ("proibidox.asp","Proibido","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</SCRIPT> <script LANGUAGE="JavaScript">
function novajan2(){
window.open ("proibido.asp","Erro","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</SCRIPT> <script LANGUAGE="JavaScript">
function novajan(){
window.open ("sucesso_treina.asp","Login","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</SCRIPT> <% Select case varmsgeof
case 11 'sem ser o admin - xanburzum gera o erro
response.write("<script>novajan2();</script>")
case 12 ' proibido excluir-me, o admin
response.write("<script>novajan3();</script>")
end select

Select case varmsg
case 1 'mensagem de sucesso do incluir
response.write("<script>novajan();</script>")
case 2 ' mensagem de sucesso do atualizar
response.write("<script>novajan();</script>")
case 3 'mensagem de sucesso do excluir
response.write("<script>novajan();</script>")
end select


'crio a conexao%>
<!--#include file="conn/conexao1.asp"-->
<% call abreconexao

'crio o rs
set rs=Server.CreateObject("ADODB.Recordset")
'crio o SQL
SQL="SELECT * FROM login ORDER BY login"
rs.open SQL,conexao,1,3
%>
</B></FONT></P><TABLE WIDTH="95%" BORDER="0" CELLPADDING="0" CELLSPACING="0" BGCOLOR="#666666" ALIGN="center">
<TR BGCOLOR="#336699"> <TD WIDTH="2%"> <DIV ALIGN="left"><B><IMG SRC="file:///A|/asp/imgs/curva.gif" WIDTH="10" HEIGHT="19"></B></DIV></TD><TD WIDTH="98%">
<DIV ALIGN="center"><B><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="2" COLOR="#FFFFFF">::
Seja Bem-Vindo <%=Ucase(varloginsession)%></FONT></B></DIV></TD></TR> <TR BGCOLOR="#336699">
<TD HEIGHT="10" COLSPAN="2"> <DIV ALIGN="center"><B><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#66ffff">Administração
de Usuários</FONT></B></DIV></TD></TR> <TR BGCOLOR="#336699"> <TD COLSPAN="2" HEIGHT="2"> </TD></TR>
<TR BGCOLOR="#336699"> <TD COLSPAN="2" HEIGHT="16"> <DIV ALIGN="right"><A HREF="pesquisa_form_treina.asp"><IMG SRC="imgs/busca2.gif" BORDER="0" ALT="Pesquisar na base de dados" WIDTH="78" HEIGHT="21"></A> </DIV></TD></TR>
<TR BGCOLOR="#336699"> <TD COLSPAN="2" HEIGHT="2"> <DIV ALIGN="right">
<script type="text/javascript">
AC_FL_RunContent( 'codigobase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0','width','80','height','20','src','incluir','quality','high','pluginspage','http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash','bgcolor','#336699','base','.','movie','incluir' ); //end AC codigo
</script><noscript><OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" CODIGOBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH="80" HEIGHT="20">
<PARAM NAME="BGCOLOR" VALUE="#336699">
<PARAM NAME="BASE" VALUE=".">
<PARAM NAME=movie VALUE="incluir.swf">
<PARAM NAME=quality VALUE=high>
<EMBED SRC="incluir.swf" QUALITY=high PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" TYPE="application/x-shockwave-flash" WIDTH="80" HEIGHT="20" BGCOLOR="#336699" BASE=".">
</EMBED> </OBJECT></noscript>
 </DIV></TD></TR> </TABLE><TABLE WIDTH="95%" BORDER="1" BORDERCOLOR="#666666" BGCOLOR="#e6e6e6" ALIGN="center">
<TR> <TD WIDTH="16%"> <DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#666666"><B>Login</B></FONT></DIV></TD><TD WIDTH="15%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#666666"><B>Senha</B></FONT></DIV></TD><TD WIDTH="25%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#666666"><B>Email</B></FONT></DIV></TD><TD WIDTH="20%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#666666"><B>Atualizar</B></FONT></DIV></TD><TD WIDTH="24%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#666666"><B>Excluir</B></FONT></DIV></TD></TR>
<% while not rs.eof%>
<TR> <TD WIDTH="16%"> <DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#000000"><B><%=rs("login")%></B></FONT></DIV></TD><TD WIDTH="15%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#000000"><B><%=rs("senha")%></B></FONT></DIV></TD><TD WIDTH="25%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#000000"><B><%=rs("email")%></B></FONT></DIV></TD><TD WIDTH="20%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#000000"><B><A HREF="atualizar_form_treina.asp?codigo=<%=rs("codigo")%>">Atualizar</A></B></FONT></DIV></TD><TD WIDTH="24%">
<DIV ALIGN="center"><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1" COLOR="#000000"><B><A HREF="excluir_form_treina.asp?codigo=<%=rs("codigo")%>">Excluir</A></B></FONT></DIV></TD></TR>
<% rs.movenext
wend
set rs=nothing
call fechaconexao
%> </TABLE><P><BR></P></RightClick>
</BODY></HTML>

Para atualizar, passamos no link a pagina de atualização junto com o código de ID do cliente, assim ,quando clicado, ele passará para uma pagina, os dados via querystring que será recuperado para posteriormente uma nova consulta.

<A HREF=”atualizar_form_treina.asp?codigo=<%=rs(“codigo”)%>”>Atualizar</A>

O mesmo será feito para excluir.

Atualizando os Dados

Como mencionado acima, na página de administração é formado dentro de um loop os dados do cliente, juntamente com um link para atualização, onde passamos o ID do cliente em um link, que recuperamos para poder exibir os dados corretos do mesmo.

Atualizar_form_treina.asp

<%  'aplicaçao para atua;izar os dados do usuário na base de dados do access
'onde através do request.querystring do código ,faremos uma SELECT (SQL)
'e jogaremos no value do form ,sendo postado através do post pra
'atualizar_action.asp k fará o UPDATE

Option explicit
'declaro as var
dim conexao, conDBQ, constring, rs, SQL, varcodigo
'recupero a var
varcodigo=request.querystring("codigo")

'crio a conexao
' pasta conn dentro de wwwroot
%>
<!--#include file="conn/conexao1.asp"-->
<%call abreconexao
'crio o recordset
set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE codigo="&varcodigo&""
rs.open SQL,conexao,1,3
'crio o form para jogar os rs'z no value %>
<html>
<head>
<title>Atualização de Usuários</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FFFFFF" vlink="#0000FF" alink="#FF0000">
<table width="75%" border="0" cellpadding="0" cellspacing="0" align="center">
<tr> <td width="2%" bgcolor="#666666"> <div align="center"><b><img src="file:///A|/asp/imgs/curva.gif" width="10" height="19"></b></div></td><td width="98%" bgcolor="#336699">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#FFFFFF">::
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Atualizar
Dados do Usuário</font></b></div></td></tr> <tr bgcolor="#336699"> <td colspan="2" height="19"> </td></tr>
<tr bgcolor="#336699"> <td height="72" colspan="2">
<form name="form1" method="post" action="atualizar_action_treina.asp">
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6">Login:</font></b>
<input type="text" name="login" size="12" maxlength="12" value="<%=rs("login")%>">
<input type="hidden" name="codigo" value="<%=rs("codigo")%>"> </p><p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6">Email:</font><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">
<input type="text" name="email" size="48" maxlength="48" value="<%=rs("email")%>">
</font></b></p><p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6">Senha:</font><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">
<input type="password" name="senha" size="8" maxlength="8" value="<%=rs("senha")%>">
</font></b></p><p align="center">
<input type="image" border="0" name="imageField" src="imgs/enviar.gif" width="87" height="22">
</p></form></td></tr>
<% 'FECHO O RS
set rs=nothing
'fecha a conexao
call fechaconexao%> </table>
</body>
</html>

Após exibir os dados corretos em um form, agora vamos atualizá-lo com os novos dados digitados pelos user. Para atualizar os dados usando a SQL UPDATE é usada para atualizar os registros existentes em uma tabela.

SQL UPDATE Sintaxe

UPDATE table_name

SET column1=value, column2=value2,…

WHERE some_column=some_value

A cláusula WHERE especifica qual registro ou registros que devem ser atualizadas. Se você omitir a cláusula WHERE, todos os registros serão atualizados

Atualizar_action_treina.asp

<%	'aplicacaun para fazer o update dos dados do form atualizar_form.asp
'onde recupero todos os dados dos campos do form,dou um replace nos ' por ""
'e crio a SQL para efetuar o update depois redireciono p/ administracao.asp
' com passagem de parametro na URL msg=2

option explicit
'declaro as var
dim conexao, conDBQ, constring, rs, SQL, varcodigo, varlogin, varsenha, varemail
'recupero as var
varcodigo=trim(request.form("codigo"))
varlogin=trim(request.form("login"))
varsenha=trim(request.form("senha"))
varemail=trim(request.form("email"))
' retiro qqer erro de digitaçao do user ,no caso ( aspas simples ')
varlogin=replace (varlogin,"'","")
varsenha=replace (varsenha,"'","")
varemail=replace(varemail,"'","")
'crio a conexao%>
<!--#include file="conn/conexao1.asp"-->
<% 'abro a conexao
call abreconexao
'crio o rs
set rs=Server.createobject("ADODB.Recordset")
'crio a SQL
SQL="UPDATE login SET login='"&varlogin&"',senha='"&varsenha&"',email='"&varemail&"' WHERE codigo="&varcodigo&""
rs.open SQL,conexao,1,3
if session("login") = "admin" then
response.redirect("administracao_treina.asp?msg=2")
else
response.redirect("administracao1.asp?msg=2")
end if
'fecho o rs
set rs=nothing
'fecho a conexao
call fechaconexao%>

Vejam também, que após realizar a atualização, o user é redirecionado para a pagina de administração, com um parâmetro na querystring, que será recuperado e exibido uma mensagem de sucesso.

Excluindo Dados

O mesmo conceito é usado para excluir os dados.

<%	'excluir_form.asp recebe o codigo pela url, dou um request.querystring
'e atribuo a varcodigo para poder fazer a SQL,monto um form com um input
' type hidden para passar o codigo para excluir_action.asp ( action do form)

option explicit
'declaro as var
dim conexao, conDBQ, constring, rs, SQL, varcodigo
'recupero a var
varcodigo=request.querystring("codigo")
if session("login") <> "admin" then
response.redirect("administracao.asp?msgeof=11")
else
'crio a conexao%>
<!--#include file="conn/conexao1.asp"-->
<% 'abro a conexao
call abreconexao
'crio o rs
set rs=Server.CreateObject("ADODB.Recordset")
'crio a SQL
SQL="SELECT * FROM login WHERE codigo="&varcodigo&""
rs.open SQL,conexao,1,3%>

<html>
<head>
<title>Excluir Usuário</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="79%" border="0" bgcolor="#336699" cellpadding="0" cellspacing="0">
<tr> <td width="2%"> <div align="center"><b><img src="file:///A|/asp/imgs/curva.gif" width="10" height="19"></b></div></td><td width="98%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#FFFFFF">::
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">Excluir
Usuário</font></b></div></td></tr> <tr> <td colspan="2"> <div align="center"></div><div align="center"></div><div align="center"></div><div align="center"></div></td></tr>
</table><table width="79%" border="0" cellpadding="0" cellspacing="0" bgcolor="#336699">
<tr> <td bgcolor="#336699" height="112">
<form name="form1" method="post" action="excluir_action_treina.asp">
<input type="hidden" name="codigo" value="<%=rs("codigo")%>"> <table width="100%" border="1" bordercolor="#e6e6e6">
<tr> <td width="19%"> <div align="center"><font color="#E6e6e6"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Código</font></b></font></div></td><td width="24%">
<div align="center"><font color="#E6e6e6"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Login</font></b></font></div></td><td width="22%">
<div align="center"><font color="#E6e6e6"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Senha</font></b></font></div></td><td width="35%">
<div align="center"><font color="#E6e6e6"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Email</font></b></font></div></td></tr>
<tr> <td width="19%"> <div align="center"><font color="#33CCFF"><b><font size="1"><font size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><%=rs("codigo")%></font></font></font></b></font></div></td><td width="24%">
<div align="center"><font color="#33CCFF"><b><font size="1"><font size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><%=rs("login")%></font></font></font></b></font></div></td><td width="22%">
<div align="center"><font color="#33CCFF"><b><font size="1"><font size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><%=rs("senha")%></font></font></font></b></font></div></td><td width="35%">
<div align="center"><font color="#33CCFF"><b><font size="1"><font size="1"><font face="Verdana, Arial, Helvetica, sans-serif"><%=rs("email")%></font></font></font></b></font></div></td></tr>
<%'fecha o rs
set rs=nothing
'fecha a conexao
call fechaconexao
end if%> </table><p align="center">
<input type="image" border="0" name="imageField" src="imgs/enviar.gif" width="87" height="22">
</p></form></td></tr> </table>
<p> </p><p> </p><p> </p>
</body>
</html>

Nesta exclusão, antes de efetuar verificamos se o user está querendo excluir o “admin”, caso o user seja igual ao admin, ele é redirecionado para a pagina de administração com uma mensagem de erro. Aqui usamos a SQL DELETE é usada para excluir linhas em uma tabela.

SQL DELETE Sintaxe

DELETE FROM table_name

WHERE some_column=some_value

Observe a cláusula WHERE na sintaxe DELETE. A cláusula WHERE especifica qual registro ou registros que deveriam ser suprimidas. Se você omitir a cláusula WHERE, todos os registros serão apagados!

Excluir_action_terina.asp

<%	'aplicacaun para excluir os dados da base de dados do access,onde recupero
'o codigo passado pelo excluir_form.asp do hidden,que no mesmo jah verifica
'se o session = do admin (xanburzum);
'depois de recuperar o codigo crio a conexao, o rs , o SQL dois SQL'z
'um para selecionar o login para verificar se é o admin o outro
'para executar a exclusaun e abro
'se o rs("login") = xanburzum redireciono para administracao?msgeof=12
'onde lá receberá uma popup k naun pode me excluir,senaun executa o sql

Option explicit
'declaro as var
dim conexao, conDBQ, constring, rs, SQL, rsdel, SQLdel, varcodigo
'recupero a var
varcodigo=Trim(request.form("codigo"))
'crio a conexao %>
<!--#include file="conn/conexao1.asp"-->
<% 'abro a conexao
call abreconexao
'crio o rs
set rs=server.createobject("ADODB.Recordset")
'crio o SQL
SQL="SELECT login FROM login WHERE codigo="&varcodigo&""
rs.open SQL,conexao,1,3
'verifico atravez do select se o login é do admin
if rs("login")= "admin" then
response.redirect("administracao.asp?msgeof=12")
set rs=nothing 'fecho o rs do select
else
'crio o rsdel para excluir o registro
set rsdel=server.createobject("ADODB.Recordset")
SQLdel="DELETE FROM login WHERE codigo="&varcodigo&""
rsdel.open SQLdel,conexao,1,3
response.redirect("administracao_treina.asp?msg=3")
set rsdel=nothing
end if
'fecha a conexao
call fechaconexao %>

Inserindo Dados

Com um formulário de entrada de dados para o cliente, iremos recupera-los e submeter a uma página para inserir.

Incluir_form_treina.asp

<% 'aplicaçaun para efetuar a inclusao de dados
'onde através de um form com os campos p/ inserir os valores
'e serem postados para o inserir_action.asp

Option explicit
'declaro as var
dim varmsgeof
varmsgeof=request.querystring("msgeof") 'no caso de erro no incluir_action

%>
<script language="javascript">
function novajan(){
window.open ("erro.asp","Erro","width=180,height=240,scrollbar=no,status=yes,resize=no")
}
</script>
<%
if varmsgeof <> "" then
response.write("<script>novajan();</script>")
end if
if Session("logado")="falso" then
response.write("<script>novajan();</script>")
end if
%>

<html>
<head>
<title>Incluir Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\\n';
} else if (test!='R') {
if (isNaN(val)) errors+='- '+nm+' must contain a number.\\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\\n'; }
} if (errors) alert('The following error(s) occurred:\\n'+errors);
document.MM_returnValue = (errors == '');
}

function MM_popupMsg(msg) { //v1.0
alert(msg);
}
//-->
</script>
<style>
body {SCROLLBAR-FACE-COLOR: #336699; SCROLLBAR-HIGHLIGHT-COLOR: #8080FF; SCROLLBAR-SHADOW-COLOR: #FFFFFF; SCROLLBAR-3DLIGHT-COLOR: #ffff99; SCROLLBAR-ARROW-COLOR: #FFFFFF; SCROLLBAR-TRACK-COLOR: #E6E6E6; FONT-FAMILY: Arial, Verdana; SCROLLBAR-DARKSHADOW-COLOR: #008080 }
input { font: normal 10px Verdana, Arial, Helvetica, sans-serif; color: #0000FF; background: #CCCCCC}
</style>
</head><body bgcolor="#FFFFFF" text="#000000">
<table width="75%" border="0" height="139" cellpadding="0" cellspacing="0" align="center">
<tr> <td bgcolor="#666666" width="2%"> <div align="center"><b><img src="file:///A|/asp/imgs/curva.gif" width="10" height="19"></b></div></td><td bgcolor="#336699" width="98%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="3">::
</font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="2">Cadastro
de Login</font><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="3">
</font></b></div></td></tr> <tr bgcolor="#336699"> <td height="5" colspan="2"> </td></tr>
<tr bgcolor="#e6e6e6"> <td height="163" colspan="2"> <form name="form1" method="post" action="incluir_action_treina.asp">
<table width="99%" border="0" bordercolor="#e6e6e6"> <tr> <td><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre
com o login: <input type="text" name="login" size="12" maxlength="12"> </font></b></td></tr>
<tr> <td height="12" bordercolor="0"><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre
com sua senha: <input type="password" name="senha" size="8" value="" maxlength="8">
</font></b></td></tr> <tr> <td bordercolor="0"><b><font color="#336699" size="1" face="Verdana, Arial, Helvetica, sans-serif">Entre
com o email: <input type="text" name="email" size="48" maxlength="48"> </font></b></td></tr>
<tr> <td bordercolor="0"> <div align="center">
<input type="image" border="0" name="imageField" src="imgs/enviar.gif" width="87" height="22" onClick="MM_validateForm('login','','R','email','','RisEmail','senha','','R');MM_popupMsg('Obrigado por se cadastrar.');return document.MM_returnValue" align="middle">
</div></td></tr> </table></form></td></tr> </table>
<p> </p>
</body>
</html>

Mas, antes de inserir, iremos verificar, através de uma consulta, se os dados já existem no banco. Caso exista, iremos redirecionar o user para a página de formulário novamente, com uma mensagem de erro. Faremos isso através da SQL:

“SELECT login FROM login WHERE login='”&varlogin&”‘”

rsselect.open SQLselect,conexao,1,3

if not rsselect.eof then

response.redirect(“incluir_form_treina.asp?msgeof=1”)

Precebam que nesta parte do código, if not rsselect.eof then, se não for final do arquivo, ou seja, já existe os dados, caso contrário, inserimos ele, e redirecionamos, para a pagina de administração com sucesso.

Incluir_action_treina.asp

<% 'incluir_action.asp => fazer a inclusao no BD, antes fazendo uma verificaçao
'no BD através de SQL Select if not rs.eof then
'redireciono para incluir_form.asp?msgeof=1 else
'incluo no bd atraves da SQL Insert e redireciono para adiministraçao.asp?msg=1
'e lá receberá um mensagem de sucesso

Option explicit
'declaro as var
dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert
'recupero todos os dados
varlogin=trim(request.form("login"))
varsenha=trim(request.form("senha"))
varemail=trim(request.form("email"))
'crio a conexao
%>
<!--#include file="conn/conexao1.asp"-->
<% 'abrir a conexao
call abreconexao
'crio o rsselect para verificar se os dados jah estaun cadastrados
set rsselect=server.createobject("ADODB.Recordset")
'crio o SQLselect
SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
rsselect.open SQLselect,conexao,1,3
if not rsselect.eof then
response.redirect("incluir_form_treina.asp?msgeof=1")
set rsselect=nothing
else
'crio o rsinsert para inseiri os dados no bd
set rsinsert=server.createobject("ADODB.Recordset")
'crio o SQLinsert pra incluir no bd
SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
rsinsert.open SQLinsert,conexao,1,3
response.redirect("administracao_treina.asp?msg=1")
set rsinsert=nothing
end if
call fechaconexao %>

Pesquisando Dados

Para efetuar a busca nos registro da BD,onde através de um form com input type text onde o user entra com pesquisa que será submetida para o pesquisa_action.asp,fazendo a SQL, nesta aplicação darei um request da varmsgeof ,k irá retornar no caso de erro no action fazendo um if e mostrando um window.open.Usamos o operador LIKE ,que é usado em uma cláusula WHERE para procurar um determinado padrão em uma coluna.

Sintaxe SQL LIKE

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

Pesquisa_form_treina.asp

<%	  

Option Explicit
'declaro as var
dim varmsgeof
'recupero a var
varmsgeof=request.querystring("msgeof")
%>
<script language="javascript">
function novajan(){
window.open ("erro_treina.asp","Proibido","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</script>
<%
if varmsgeof = 1 then 'porque naun achou nada na SQL select
response.write("<script>novajan();</script>")
end if

'no caso de fazer uma pesquisa mais avançada com 2 tab.
'eu aki criaria a conexao,crio o rs, crio am SQL
'sql="select * from categoria order by categoria"
'rs.open sql,conexao,1,3
'crio o form com action para pesquisa_action.asp
'crio o <select name="categoria" size="1">
'{% while not rs.eof %}
'<option value="{%=rs("cod_cat")%}">
'{%rs("categoria")%}
'</option>
'{%rs.movenext
'wend%}
'</select>
'{%fecha o rs
'set rs=nothing
'fecha a conexao
'call fechaconexao
'crio o input type text da pesquisa
'<input type="text" name="categoria">

%>

<html>
<head>
<title>Pesquisa</title>

</head>

<body bgcolor="#999999" text="#000000">
<table width="75%" border="0"> <tr> <td> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Pesquisa</font></b></div></td></tr>
<tr> <td height="2"> </td></tr> <tr> <td> <form name="form1" method="post" action="pesquisa_action_treina.asp">
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Entre
com a Pesquisa:</font></b> <input type="text" name="pesquisa" size="35" maxlength="15">
<input type="image" border="0" name="imageField" src="imgs/ok.gif" width="18" height="15" alt="pesquisar">
</form></td></tr> </table>
<p> </p>
</body>
</html>

Pesquisa_action_treina.asp

<%			  
Option Explicit
'declaro as var
dim conexao, conDBQ, constring, rs, SQL, varpesquisa
'recupero a pesquisa
varpesquisa=trim(request.form("pesquisa"))
'crio a conexao
%>
<!--#include file="conn/conexao1.asp"-->
<%'abro a conexao
call abreconexao
'crio o rs
set rs=server.createobject("ADODB.Recordset")
'crio a SQL
SQL="SELECT * FROM login WHERE login LIKE '%"&VARPESQUISA&"%' ORDER BY login"
rs.open SQL,conexao,1,3
if rs.eof then
response.redirect("pesquisa_form_treina.asp?msgeof=1")
else%>
<html>
<head>
<title>Dados Encontrados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#999999" text="#000000">
<table width="75%" border="1"> <tr> <td colspan="4"> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Pesquisa
de <%= Ucase(varpesquisa)%></font></b></div></td></tr> <tr> <td colspan="4"> </td></tr>
<tr> <td width="18%"> <div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Código</font></b></font></div></td><td width="26%">
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Login</font></b></font></div></td><td width="22%">
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Senha</font></b></font></div></td><td width="34%">
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Email</font></b></font></div></td></tr>
<% while not rs.eof %> <tr bgcolor="#CCCCCC"> <td width="18%"> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("codigo")%></font></b></div></td><td width="26%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("login")%></font></b></div></td><td width="22%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("senha")%></font></b></div></td><td width="34%">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("email")%></font></b></div></td></tr>
<%rs.movenext
wend%> <tr> <td colspan="4"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Foram
encontrados <%=rs.recordcount%> registros para sua pesquisa.</font></b></td></tr>
<tr> <td colspan="4"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Página
<%=rs.pagecount%> de <%=rs.pagecount%> </font></b></td></tr> <% 'fecha o rs
set rs=nothing
'fecha a conexao
call fechaconexao
end if %> </table>
<table width="75%" border="0" height="65">
<tr>
<td> <div align="center"><font color="#999999"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666666">Resolução
mínima 800x600.</font></b></font></div></td>
</tr>
<tr>
<td> <div align="center"><font color="#999999"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<font color="#666666">© Copyright 2000-2002 - Todos os direitos reservados</font></font></b></font></div></td>
</tr>
</table>
<p> </p>
</body>
</html>

Recuperando Senha

Vários sistemas, utilizam este recurso para que quando o user esquecer ou perder sua senha, ela seja enviada via email para o “esquecidinho”. Teremos um formulário, onde o user irá entrar com seu login, nome e email. Com esses dados faremos uma consulta no bd e depois enviaremos a senha por email, este é um simples método, mas podemos implementar muito mais, para ter maior segurança, como por exemplo validar algumas outros informações.

Esqsenha_form_treina.asp

<% Option Explicit 
'declara as var
dim varmsgeof,varmsg
'recupera a msgeof do erro no login_action
varmsgeof=request.querystring("msgeof")
varmsg=request.querystring("msg")%>

<script language="javascript">
function novajan(){
window.open ("erro_treina.asp","Erro","width=240,height=240,scrollbar=no,status=yes,resize=no")
}
</script>

<script language="javascript">
function novajan1(){
window.open ("sucesso_treina.asp","Sucesso","width=240,height=240,scrollbar=no,status=yes,resize=no")
}
</script>

<%
if varmsg = 1 then
response.Write("<script>novajan1();</script>")
end if

Select case varmsgeof
case 1 'nome vazio
response.write("<script>novajan();</script>")
case 2 'login vazio
response.write("<script>novajan();</script>")
case 3 'email vazio
response.write("<script>novajan();</script>")
case 4 'login incorreto
response.write("<script>novajan();</script>")
case 5 'email incorreto
response.write("<script>novajan();</script>")
end select %>

<HTML>
<HEAD>
<TITLE>Recuperação de senha</TITLE>
<BODY bgColor=#ffffff leftMargin=18 topMargin=12>
<table width="100%" border="0" height="445">
<tr>
<td height="378"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#666666"><b><font color="#336699">::
Entre com as informções para receber sua senha por email.</font></b></font></p>
<p> </p>
<form name="form1" method="post" action="file:///C|/Documents%20and%20Settings/x/Desktop/Treinamento/esqsenha_action_treina.asp">
<table width="85%" border="0" cellspacing="0" cellpadding="0" bgcolor="#336699">
<tr bgcolor="#666666">
<td width="4%" bgcolor="#666699"><img src="file:///C|/Documents%20and%20Settings/x/Desktop/Treinamento/imgs/curva.gif" width="10" height="19"></td>
<td width="96%" bgcolor="#336699"> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF"><b><font size="3">::
</font>Por favor entre com seu login e email</b></font></div></td>
</tr>
<tr bgcolor="#666666">
<td width="4%" bgcolor="#336699"> </td>
<td width="96%" bgcolor="#336699"> </td>
</tr>
<tr bgcolor="#666666">
<td colspan="2" bgcolor="#336699"><font color="#e6e6e6" face="Verdana, Arial, Helvetica, sans-serif" size="2"><b> Nome:
 
<input name=nome id="nome" size="20" maxlength="12">
</b></font></td>
</tr>
</table>
<table width="85%" border="0" cellspacing="0">
<tr bgcolor="#336699">
<td colspan="3"><font color="#e6e6e6" face="Verdana, Arial, Helvetica, sans-serif" size="2"><b> Login:
 
<input name=login size="12" maxlength="12">
</b></font></td>
</tr>
<tr bgcolor="#336699">
<td colspan="3"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6"><b> Email:
<input type=text name=email size="30" maxlength="30">
   <span class="preto"> </span></b></font></td>
</tr>
<tr bgcolor="#336699">
<td height="2" width="41%"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#e6e6e6"><b><span class="preto">
<input type="image" border="0" name="imageField" src="file:///C|/Documents%20and%20Settings/x/Desktop/Treinamento/imgs/enviar.gif" width="87" height="22">
</span></b></font></div></td>
<td width="42%"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#e6e6e6"></font></div></td>
<td height="2" width="17%"> </td>
</tr>
<tr bgcolor="#336699">
<td height="2" colspan="2"> </td>
<td height="2"> </td>
</tr>
</table>

</form>
</td>
</tr>
</table>
</BODY></HTML>

Abaixo o action que irá validar e enviar a senha.

Esqsenha_action_treina.asp

<% Option Explicit
' Declaro as variaveis
Dim varnome,varlogin,varemail,conDBQ,constring,conexao,rs,SQL,objmail

' recupero as variaveis

varnome=Trim(request.Form("nome"))
varemail=Trim(request.Form("email"))
varlogin=Trim(request.Form("login"))

if varnome = "" then
response.redirect("esqsenha_form_treina.asp?msgeof=1")
end if

if varlogin = "" then
response.redirect("esqsenha_form_treina.asp?msgeof=2")
end if

if varemail = "" then
response.redirect("esqsenha_form_treina.asp?msgeof=3")
end if

' crio a conexao
%>

<!--#include file="conn/conexao1.asp" -->

<%
' abro a conexao
call abreconexao
' crio o rs

Set rs= server.createobject("ADODB.Recordset")
' crio o SQL
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
if rs.eof then
response.Redirect("esqsenha_form_treina.asp?msgeof=4")
else
if LCase(varemail) <> LCase (rs("email")) then
response.Redirect("esqsenha_form_treina.asp?msgeof=5")
else
' crio o objeto para envio de email
Set objmail= Server.CreateObject("CDONTS.NewMail")
objmail.from="xanburzum@terra.com.br"
objmail.to=varemail
objmail.subject="Sua senha"
objmail.body="Caro(a) " & varnome & " segue sua senha: " &rs("senha")
objmail.send
set objmail=nothing
end if
end if
response.Redirect("esqsenha_form_treina.asp?msg=1")
call fechanexaonexao
%>

Finalizando, agora teremos este arquivo, que permite que o usuário altere sua senha. Para isso é preciso fornecer a senha atual, a nova senha e redigitar a nova senha para confirmação.

Alterasenha_form_treina.asp

<html>
<head>
<title>Administradores</title>
</head>
<body bgcolor="#9999FF">
<table width="56%" border="1" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor="#FFFFFF">
<td>
<div align="center"><font color="#FF6633" face="Arial, Helvetica, sans-serif"><b>Alteração
de senha do Login: <%=UCase(Session("Login"))%></b></font></div>
</td>
</tr>
<tr bgcolor="#CCCCCC">
<td>
<form method="post" action=" Alterasenha_action_treina.asp">
<table width="85%" border="0" align="center">
<tr>
<td height="20" width="48%"> </td>
<td height="20" width="52%"> </td>
</tr>
<tr>
<td height="39" width="48%">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Senha
atual :</font></div>
</td>
<td height="39" width="52%">
<input type="password" name="senhaAtual" maxlength="10" size="10">
</td>
</tr>
<tr>
<td height="39" width="48%">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nova
senha:</font></div>
</td>
<td height="39" width="52%">
<input type="password" name="senhaNova" maxlength="10" size="10">
</td>
</tr>
<tr>
<td height="39" width="48%">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Confirma
senha:</font></div>
</td>
<td height="39" width="52%">
<input type="password" name="senhaConfirma" maxlength="10" size="10">
</td>
</tr>
<tr>
<td height="39" colspan="2">
<div align="center">
<input type="submit" name="Entrar" value="Alterar">
</div>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>

Abaixo o arquivo que irá trocar a senha.

Alterasenha_action_treina.asp

<%
Option Explicit
'Admin - alteração de senhas
%>
<%
Dim strSQL, Conexao, rs, varSenha, varSenhaAtual, varSenhaNova, varSenhaConfirma, varLinha
varSenhaAtual = Trim(Request.Form("SenhaAtual"))
varSenhaNova = Trim(Request.Form("SenhaNova"))
varSenhaConfirma = Trim(Request.Form("SenhaConfirma"))
varSenha = Session("Senha")
varSenha = Replace(varSenha, "'", "")
varSenhaNova = Replace(varSenhaNova, "'", "")
varSenhaConfirma = Replace(varSenhaConfirma, "'", "")

IF varSenha = varSenhaAtual AND varSenhaNova = varSenhaConfirma then
strSQL = "UPDATE Login SET TXT_Senha = '" & varSenhaNova & "' "
strSQL = strSQL & "WHERE TXT_Nome = '" & Session("Login") & "'"
'abre a conexao
Call abre_conexao

'executa a instrução SQL
Set rs = Conexao.Execute(strSQL)

'fecha a conexao
Call fecha_conexao
Set rs = Nothing
varLinha = 1
Else
varLinha = 2
End IF
%>
<HTML>
<BODY bgcolor="#FFFFFF">
<DIV align="left">
<table width="75%" border="0">
<%
IF varlinha = 1 then
%>
<tr>
<td>
<div align="center"><font color="#FF6633" face="verdana"><b><font color="#FF6633" face="verdana"><b><font color="#663399" face="verdana"><b><font size="4">Senha
alterada com</font></b></font><font size="4"><br>
<font color="#663399" face="verdana"><b><font size="4"><font color="#818181" size="6">S
U C E S S O ! ! !</font> </font></b></font><font color="#FFFFFF" size="6">
!</font></font></b></font></b></font></div>
</td>
</tr>
<%
Else
%>
<tr>
<td>
<div align="center"><font color="#663399" face="verdana" size="4"><b>Senhas
nova e confirma estão</b></font><br>
<font color="#818181" face="verdana" size="6"><b>I N C O R R E T A S
! ! ! </b></font></div>
</td>
</tr>
<%
End If
%>
</table>
</DIV>
</BODY>
</HTML>

E, por último, a página de erro.

Erro_treina.asp

<html>
<head>
<title>Erro em tempo de execução</title>
<!-- <meta http-equiv="refresh" content="3;URL=java script:window.close();">-->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function fechapop(){window.setTimeout("window.close()",10000);
}
</script>
</head>
<body bgcolor="336699" text="#000000" onLoad="fechapop()">
<table width="80%" border="0" align="center">
<tr>
<td> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#CCCCCC"><i><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">ERRO</font>
</i> </font></b></div></td>
</tr>
<tr>
<td> <p><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="1"><b>Ocorreu
algum erro da seguinte procedência:</b></font></p>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="1"><b>
<font color="#33CCFF"># inclusão, login inválido, senha
incorreta, logon ativo, dados pendentes #</font></b></font></p></td>
</tr>
<tr>
<td> <div align="center"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Resolução
mínima 800x600.</font></b></font></div></td>
</tr>
<tr>
<td> <div align="center"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
© Copyright 2000-2014 - Todos os direitos reservados</font></b></font></div></td>
</tr>
</table>
</body>
</html>

Fazendo LogOff

Terminar_treina.asp

<%response.buffer=true%>
<%Session.abandon%>


<html>
<head>

<script language="javascript">
function fechapop(){window.setTimeout("window.close()",10000);
}
</script>


<!-- <meta http-equiv="refresh" content="3;URL=" -->
<title>Encerrar sessão</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="336699" text="#000000" onLoad="fechapop()">
<table width="80%" border="0" align="center">
<tr>
<td height="21"> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#CCCCCC"><i><font color="#e6e6e6">Obrigado
<%=Ucase(session("login")) %> </font><font color="#66FFFF"> </font> </i> </font></b></div></td>
</tr>
<tr>
<td> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF" size="1"><b><font color="#33CCFF">Você
saiu da sessão Restrita.</font></b></font></div></td>
</tr>
<tr>
<td> <div align="center"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Resolução
mínima 800x600.</font></b></font></div></td>
</tr>
<tr>
<td> <div align="center"><font color="#000000"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
© Copyright 2000-2002 - Todos os direitos reservados</font></b></font></div></td>
</tr>
</table>
</body>
</html>

E a página de sucesso

Sucesso_treina.asp