Basicamente iremos precisar de uma base de dados na qual iremos armazenar os registros feitos pelos vistantes:
Vamos armazenar os seguintes dados:
| ID |
O código de identificação do assinante |
| nome |
o nome do usuário que assinou o livro |
| email |
o email do assinante |
| mensagem |
a mensagem do visitante |
| data |
a data da assinatura do livro |
Será necessário criar uma base de dados com uma tabela com os campos acima mencionados, usaremos então o
Access para criar o banco de dados visita.mdb e a tabela visitantes com a estrutura mencionada.(Ver figura abaixo)

O acesso a base de dados pode ser feito de 3 maneiras :
1- )
Usando um provedor OLE DB (iremos usar esta forma de acesso a base de dados).
Neste método usamos o seguinte código:
| 'cria uma instancia do objeto connection
Set Conn = Server.CreateObject("ADODB.Connection")
DB = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="& _
Server.MapPath("/visitas/visita.mdb")
Conn.Open DB
|
2-) A segunda forma é usar um driver ODBC ( existem servidores que não suportam provedores OLE DB ).
Neste caso o código é o seguinte:
| 'cria uma instancia do objeto connection Set
Conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &_
Server.MapPath("/visitas/visita.mdb")
|
3-) Podemos usar ainda um DSN (Data Source Name) para acessar os dados via objeto connection da ADO.
Como exemplo podemos criar o DSN com o nome de visitantes e usá-lo para o acesso a base de dados.
| 'cria uma instancia do objeto connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "DSN=visitantes;uid=;pwd=;"
|
Nosso projeto usara somente um arquivo de script asp , o arquivo visitas.asp será o responsável pela funcionalidade do
nosso livro de visitas e um arquivo onde iremos reunir todas as funções JavaScript usadas para validar os dados ;
o arquivo funcoes.asp que será um arquivo de inclusão.
O arquivo ajuda.htm também será usado para exibir o conteúdo da ajuda ao usuário.
O código do arquivo funcoes.asp é o seguinte:
<script language="JavaScript">
function verifica_dados(form) {
var tamanho_pesquisa = new String()
tamanho_pesquisa = document.enviar.mensagem.value
if(EmBranco(form.nome) == true) {
alert("Por favor informe o seu nome.");
form.nome.focus();
return false;
}
if(EmBranco(form.email) == true) {
alert("O seu e-mail apresenta um formato inválido.");
form.email.focus();
return false;
}
if(tamanho_pesquisa.length > 200 ){
AvisoInvalido(document.enviar.mensagem,'ATENÇÃO: Sua mensagem deve conter no máximo 200 caracteres!\n\n');
return false;
}
if(EmBranco(form.mensagem) == true) {
alert("Deixe pelo menos uma palavra");
form.mensagem.focus();
return false;
}
} // fim da função
// Verifica se os campos foram preenchidos
function EmBranco(campo) {
if(campo.value == "")
return true;
else
return false;
}
/************************************************
* function AvisoInvalido
* Gera um alerta para o usuário
* volta o foco p/campo
* Input: theField - campo do formulário com problema
* warnText - texto a ser mostrado no alert
************************************************/
function AvisoInvalido (theField, warnText) {
theField.focus()
theField.select()
alert(warnText)
return false
}
</script>
<script language="JavaScript">
// funcao para obter ajuda
function ajuda(){
window.open('ajuda.htm','explica','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no, _ resizable=no,copyhistory=no,width=270,height=310,top=40,left=150');
}
</script> |
As funções do arquivo fazem a validação da entrada de dados nos campos do formulário do site.
Â
Ao acessar a página do nosso livro de visitas iremos mostrar os usuários que já assinaram o livro e a seguir
mostraremos o formulário que permitirá ao usuário informar os dados para assinar o livro.
Veja a seguir o código do arquivo visitas.asp comentado:
<%option explicit %> <!--#include file="funcoes.asp" --> <% 'declara as variaveis Dim nome Dim email Dim mensagem Dim homepage Dim conn Dim DB Dim rst Dim SQL 'cria uma instancia do objeto connection Set Conn = Server.CreateObject("ADODB.Connection") DB = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="& _
Server.MapPath("/visitas/visita.mdb") Conn.Open DB '2-)Acesso usando um driver ODBC 'conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/visitas/visita.mdb") '
3-)Acesso usando um DSN chamado visitantes
'Conn.open "DSN=visitantes;uid=;pwd=;" 'cria uma instancia do objeto recordset Set rst = Server.CreateObject("ADODB.Recordset") if Request.ServerVariables("CONTENT_LENGTH")> 0 THEN SQL = "SELECT * FROM visitantes" rst.Open SQL,Conn,1,2 rst.AddNew rst("nome") = Request.form("nome") rst("email") = Request.form("email") rst("mensagem") = Request.form("mensagem") rst("data") = day(now) & "/" & month(now) & "/" & year(now) rst.Update rst.close end if 'ordenar o recordset pelo nome dos visitantes SQL = "SELECT * FROM visitantes ORDER BY nome" rst.Open SQL,Conn,1,2 %> <HTML> <HEAD> <TITLE>Relação dos Visitantes</TITLE> </HEAD> <CENTER> <body bgcolor="#00FFFF"> <table border="0"> <tr> <td><img src="logo_vb.gif" width="320" height="49"><font face="Comic Sans MS"> <em></em></font><font color="#004080" face="Comic Sans MS"><em>Jcm</em></font> <font color="#FF0000" face="Comic Sans MS"><em>Soft</em></font> <font color="#808040" face="Comic Sans MS"><em> / </em></font><font height="49"> <font face="Comic Sans MS"><em> </em></font><font color="#004080" face="Comic Sans MS"> <em>Banco </em></font><font color="#FF0000" face="Comic Sans MS"><em>de</em></font> <font color="#004080" face="Comic Sans MS"><em> </em></font> <font color="#808040" face="Comic Sans MS"><em>Dados</em></font> <font color="#004080" face="Comic Sans MS"><em> </em></font> <font color="#0080FF" face="Comic Sans MS"><em>na </em></font> <font color="#FF8000" face="Comic Sans MS"><em>WEB</em></font></td> </tr> </table> <hr> <p><font size="5" face="Comic Sans MS">Livro de Visitantes</font> <A href="javascript:ajuda()"> <IMG border=0<img src="livro.gif" width="67" height="39"></p></A> <table border="0" width="90%"> <tr> <td width="100%"> <div align="center"> <center> <table border="0" width="90%"> <% While Not rst.EOF %> <tr> <td width="100%" bgcolor="#CDCDCD"> <font face="Arial" size="2" color="green"> Assinado em</font><font color="black"><em> <%=rst("data")%></em></font> <font face="Verdana" color="blue">por</font> <font color="pink"><em><a href="mailto:<%=rst("email")%>"> <%=rst("nome")%></a><br></em></font> <div align="center"><center> <table border="0" width="70%"> <tr> <td width="100%"> <p align="center"> <font color="black" size="2" face="Arial"> <i><%=rst("mensagem")%></i> </font></td></tr> </table></center></div></td></tr> <% rst.MoveNext wend rst.close conn.close set rst=nothing set conn=nothing %> </table> </center></div> </td></tr> </table> </center> </div> <% 'inicializa as variáveis nome="" email="" mensagem="" homepage="" %> <form name="enviar" method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" _
onsubmit="return verifica_dados(this);"> <center> <Table bgcolor="aqua" border="0"> <tr><td> <b>Nome (*): </b> <input type="text" size="60" name="nome" value="<%=nome%>"> </td></tr> <tr><td> <b>E-Mail(*): </b> <input type="text" size="60" name="email" value="<%=email%>"> </td></tr> <tr></tr> <tr><td> <b>Mensagem : <font color=blue>Obs: (*) Preenchimento obrigatório</font></b> <textarea rows="3" name="mensagem" value="<%=mensagem%>" cols="60">
</textarea> </td></tr><tr> <td> <input type="submit" value="Assinar" name="B1">
<input type="reset" value="Limpar" name="B2"> </td></tr> </table> </form>
</center>
<hr> </body>
</html> |
Como funciona ?
1-) <%option explicit %> - Esta instrução obriga a que declaremos todas a variáveis usadas no projeto. ( boa prática )
2-) <!--#include file="funcoes.asp" --> - Aqui estamos incluindo o arquivo funcoes.asp na página visitas.asp ,
com isto o código fica mais claro e a manutenção também.
3-) A seguir criamos um objeto Connection e definimos uma string de conexão.
Vamos usar o banco de dados visitas.mdb localizado no diretório database.
( Como estou hospedando os arquivos no servidor Phidji.com sou obrigado a usar o diretório database ).
A seguir abrimos a conexão com o banco de dados.
'cria uma instancia do objeto connection Set Conn = Server.CreateObject("ADODB.Connection") DB = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="& _
Server.MapPath("/database/visita.mdb")
Conn.Open DB
4-) Set rst = Server.CreateObject("ADODB.Recordset") - criamos a variável recordset - rst.
5-) O código abaixo irá fazer a inclusão dos dados do formulário na tabela visitantes.
if Request.ServerVariables("CONTENT_LENGTH")> 0 THEN SQL = "SELECT * FROM visitantes" rst.Open SQL,Conn,1,2 rst.AddNew rst("nome") = Request.form("nome") rst("email") = Request.form("email") rst("mensagem") = Request.form("mensagem") rst("data") = day(now) & "/" & month(now) & "/" & year(now) rst.Update rst.close end if
6-) A seguir usamos a instrução : While Not rst.EOF / Wend para percorrer a tabela e exibir todos os registros na tela do site.
7-) O formulário para preencher os dados é montado usando o seguinte código:(Observe o uso das tags <%=campo%> )
<form name="enviar" method="POST" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" _
onsubmit="return verifica_dados(this);"> <center> <Table bgcolor="aqua" border="0">
<tr><td> <b> Nome (*): </b><input type="text" size="60" name="nome" value="<%=nome%>">
</td></tr><tr><td> <b>
E-Mail(*): </b> <input type="text" size="60" name="email" value="<%=email%>">
</td></tr><tr></tr> <tr><td> <b>
Mensagem : <font color=blue>
Obs: (*) Preenchimento obrigatório</font></b>
<textarea rows="3" name="mensagem" value="<%=mensagem%>" cols="60"></textarea> </td></tr><tr><td>
<input type="submit" value="Assinar" name="B1">
<input type="reset" value="Limpar" name="B2"> </td></tr> </table> </form> |