ASP
Você está aqui: Home » ASP » Livro de Visitas
Livro de Visitas

Bom galera, hoje irei ensinar a criar um Livro de Visitas, não tem segredo, só tomar cuidado caso deixar habilitado cadastrar tags HTML, pois algum engraçadinho poderá cadastrar códigos maliciosos que poderá danificar a sua máquina, servidor e a máquina do usuário! Bom gente vamos ao danado.
Bom galera, hoje irei ensinar a criar um Livro de Visitas, não tem segredo, só tomar cuidado caso deixar habilitado cadastrar tags HTML, pois algum engraçadinho poderá cadastrar códigos maliciosos que poderá danificar a sua máquina, servidor e a máquina do usuário! Bom gente vamos ao danado.
Legendas:
HTML
ASP
Comentário HTML
Comentário ASPPrimeiramente iremos criar a página com o form, daqui iremos definir os campos desejados, campos obrigatórios ou não.
cn.asp<%
'aqui iremos criar a conexão com o banco de dados
set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:É MeuAspAspAspLivro_de_Visitasdblivro.mdb;Persist Security Info=False"
%>Agora iremos montar a página com os campos para ser efetuado o cadastro da mensagem:
assinar.asp<style type="text/css">
<!--
.input {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 13px;
color: #000000;
text-decoration: none;
background-color: #eeeeee;
border: 1px dashed #666666;
}
-->
</style>
<style type="text/css">
<!--
.botao {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
text-decoration: none;
background-color: #dddddd;
border: 1px dotted #666666;
}
-->
</style>
</head>
<body>
<!--Aqui iremos montar o form com os campos necessários-->
<form action="postar.asp" method="post" name="livro" id="livro">
<table width="40%" height="270" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Assinar
Livro de Visitas</strong></font></div></td>
</tr>
<tr>
<td width="19%"> </td>
<td width="81%"> </td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seu nome:</font></td>
<td><input name="nome" type="text" class="input" id="nome2" size="40"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sua idade:</font></td>
<td><input name="idade" type="text" class="input" id="idade2" size="2" maxlength="2"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seu e-mail:</font></td>
<td><input name="email" type="text" class="input" id="email2" size="40"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seu site:</font></td>
<td><input name="url" type="text" class="input" id="url" value="http://" size="40"></td>
</tr>
<tr>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">País:</font></td>
<td><input name="pais" type="text" class="input" size="20"></td>
</tr>
<tr>
<td colspan="2"><div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sua
mensagem:<br>
<textarea name="msg" cols="53" rows="10" class="input" id="textarea2"></textarea>
<br>
</font></div></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><div align="center"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Obs:</font><font color="#FF0000" size="2" face="Verdana, Arial, Helvetica, sans-serif">
HTML desabilitado, não use tags HTML</font></div></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"> <div align="center">
<input name="Submit" type="submit" class="botao" value="Assinar" style="CURSOR: hand">
<input name="Submit2" type="reset" class="botao" value="Limpar" style="CURSOR: hand">
</div></td>
</tr>
</table>
</form>
<!--Final Form-->
</body>
</html>Agora iremos montar a página que recebe os dados enviados do form:
postar.asp<style>
<!--
.link:link { color:black; font-family: verdana }
.link:active { color:black; font-family: verdana }
.link:hover { color:red; font-family: verdana }
a:visited { color:black; font-family: verdana }
-->
</style>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<!--include da conexão com o banco de dados-->
<!--#include file="cn.asp"-->
<%
'aqui iremos pegar as informações enviadas do form
nome = request("nome")
idade = request("idade")
email = request("email")
url = request("url")
pais = request("pais")
msg = request("msg")
data = Date
hora = Time
'--------------------Final request---------------------------'aqui essa função TRIM, ele irá tirar todos os espaços
'das informaçoes passadas
'caso o usuário digitou " Ola " ele irá tirar os espaços
'e irá deixar assim "Ola"
nome = Trim(nome)
idade = Trim(idade)
email = Trim(email)
url = Trim(url)
pais = Trim(pais)
msg = Trim(msg)
'-------------------Final Trim-------------------------------'aqui a Função Replace substitui um valor desejado por outro
'aqui nessa função ele irá trocar a aspa simples por nada
nome = Replace(nome,"'","")
idade = Replace(idade,"'","")
email = Replace(email,"'","")
url = Replace(url,"'","")
pais = Replace(pais,"'","")
msg = Replace(msg,"'","")
'-------------------Final Replace---------------------------'aqui a função Server.HTMLEncode irá codificar
'as informações passadas, caso algum engraçadinho
'queira cadastrar códigos HTML
nome = Server.HTMLEncode(nome)
idade = Server.HTMLEncode(idade)
email = Server.HTMLEncode(email)
url = Server.HTMLEncode(url)
pais = Server.HTMLEncode(pais)
msg = Server.HTMLEncode(msg)
'-----------------Final Server.HTMLEncode-----------------
%>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#eeeeee">
<%
'agora iremos verificar se há algum campo vazio
'somente o campo Site não será obrigatório
'pois nem todos os usuários possuem página da internet
if nome = "" OR idade = "" OR email = "" OR pais = "" OR msg = "" then
%> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Ocorreu(am)
o(s) seguinte(s) erro(s):</b></font> <p>
<%
if nome = "" then
%>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Campo
"<b>Nome</b>" em branco<br>
</font>
<%
end if
if idade = "" then
%>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Campo
"<b>Idade</b>" em branco<br>
</font>
<%
end if
if email = "" then
%>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Campo
"<b>E-mail</b>" em branco<br>
</font>
<%
end if
if pais = "" then
%>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Campo
"<b>País</b>" em branco<br>
</font>
<%
end if
if msg = "" then
%>
<font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Campo
"<b>Mensagem</b>" em branco<br>
</font>
<%
end if
'------------------------final verificação de campos vazios------------------
%>
</td>
</tr>
<tr>
<td bgcolor="#eeeeee"> </td>
</tr>
<tr>
<td bgcolor="#eeeeee"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="javascript:history.go(-1)" class="link">Voltar</a></font></div></td>
</tr>
</table>
<%
'aqui mandamos para a tela caso estiver algum campo vazio
response.end
end if'aqui verificamos se caso o usuário deixou em branco
'o campo SITE ele irá substituir o HTTP:// por nada
if url = "http://" then
url = ""
end if'caso tudo ocorra nos conformes ele cadastra no banco de dados
'lembre-se sempre que qdo for cadastrar no banco de dados
'nunca cadastrar aspa simples pois na hora de tentar cadastrar ele dá erro
i = "insert into livro(nome,idade,email,pais,url,msg,data,hora) values('"&nome&"',"&idade&",'"&email&"','"&pais&"','"&url&"','"&msg&"','"&data&"','"&hora&"')"'aqui mandamos executar a instrução de inclusão de dados
cn.Execute(i)
%>
<!--Mensagem de agradecimento-->
<center><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Obrigado por assinar o nosso livro de visitas.</font></center><p>
<center>
<a href="listar.asp" class="link"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ver
mensagens cadastradas</font></a>
</center>
<%
'fechamos a conexão
cn.Close'Obs: qdo for fazer inclusão(insert) de dados
'alteração(UPDATE) e deletar(DELETE) não utiliza-se recordset
'somente qdo for selecionar no banco de dados(select)
%>Agora a página que irá mostrar as msg cadastradas:
listar.asp<style>
<!--
.link:link { color:black; font-family: verdana }
.link:active { color:black; font-family: verdana }
.link:hover { color:red; font-family: verdana }
a:visited { color:black; font-family: verdana }
-->
</style>
<!--aqui fazemos o include da conexão com o banco de dados-->
<!--#include file="cn.asp"-->
<%
'aqui iremos selecionar os campos
'da tabela livro do banco de dados
'repare que estou selecionando pela ordem
'da data decrescente
'isso irá retornar 1º a última msg postada
s = "select * from livro order by data DESC"'aqui setamos o recordset e executamos a Instrução (s) acima
set ls = cn.Execute(s)'agora iremos criar um recordset que irá
'fazer a contagem de registros no banco de dados
set rs = Server.CreateObject("ADODB.Recordset")'a função que conta os registro é o Count(campo)
'nesse caso mandamos contar todos os campos
'mas poderia ser apenas o campo nome
'repare que eu atribui um apelido para o Count
'eu o apelidei de (conta)
'eu fiz isso para podermos usá-lo depois
rs.Open "select Count(*) as conta from livro", cn 'aqui mandamos abrir a conexão também'aqui está o conta
'repare eu criei uma variável contar
'e igualei ao rs("conta"), pois foi o apelido do Count
contar = rs("conta")'aqui iremos dar uma condião para ver se há msg no banco de dados
if contar < 1 then
%>
<center><font size="2" color="#FF0000" face="Verdana, Arial, Helvetica, sans-serif">Não há mensagem cadastrada no momento.</font></center>
<%
'caso essa condição for verdadeira ele para aqui
response.End
else
'ou então iremos montar a tabela com as msgs
%>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#eeeeee">
<tr>
<td align="center" colspan="2"><font size="2" color="#000000" face="Verdana, Arial, Helvetica, sans-serif">Há
no momento <font color="#FF0000">
<!--Olha o danado do contar aqui, ele vai trazer a contagem exata de registros do banco de dados-->
<%=contar%>
</font> mensagens cadastradas.</font></td>
</tr>
<tr>
<td width="13%"> </td>
</tr>
<%
'aqui mandamos mostrar na tela os registros
'enquanto não estiver no final da tabela do banco
'ele vai montando a tabela de msg
while NOT ls.EOF
%>
<tr>
<td height="25" colspan="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome:
</font></strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<!--aqui colocamos o valor do campo NOME do banco de dados-->
<%=ls("nome")%>
</font></td>
</tr>
<tr>
<td height="25" colspan="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Idade:</font></strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<!--aqui colocamos o valor do campo IDADE do banco de dados-->
<%=ls("idade")%>
</font></td>
</tr>
<tr>
<td height="25" colspan="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-mail:</font></strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<!--aqui já iremos até mostrar como link o email do usuário que cadastrou a msg-->
<!--repare que eu coloquei a função LCase, isso irá deixar as letras tudo em minúsculas-->
<a href="mailto:<%=LCase(ls("email"))%>" target="_blank" class="link"><%=LCase(ls("email"))%></a>
</font></td>
</tr>
<tr>
<td height="25" colspan="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Site:</font></strong>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<%
'aqui damos a condição para verificar se o campo url
'está vazio ou não
'se estiver vazio irá mostrar msg de não informado
if ls("url") = "" then
%>
<font color="#FF0000">Não informado</font>
<%
'caso contrário mostra a url
else
%>
<a href="<%=LCase(ls("url"))%>" target="_blank" class="link"><%=LCase(ls("url"))%></a>
<%end if%>
</font></td>
</tr>
<tr>
<td height="25" colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>País:</strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<!--aqui colocamos o valor do campo PAÍS do banco de dados-->
<%=ls("pais")%>
</font></td>
</tr>
<tr>
<td height="25" colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Adicionado
em</strong>
<!--aqui colocamos o valor da do campo DATA, a data de qdo foi postada a msg-->
<%=ls("data")%> <strong>às</strong>
<!--e a hora em que foi cadastrada a msg-->
<%=ls("hora")%>
</font></td>
</tr>
<tr>
<td colspan="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mensagem:</font></strong><br>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<!--aqui colocamos o valor da do campo MSG do banco de dados-->
<%=ls("msg")%>
</font> </td>
</tr>
<tr>
<td bgcolor="#CCCCCC" colspan="2"> </td>
</tr>
<%
'aqui mandado ele pular para o próximo registro
'do banco de dados e fazer o mesmo procedimento acima
ls.MoveNext'finalizamos o while
Wend'finalizamos a condição do IF
End If'fechamos os recordsets e a conexão
rs.Close
ls.Close
cn.Close'e limpamos os mesmos
set rs = nothing
set ls = nothing%>
</table>Prontinho galera, agora é só se divertir, e quem quiser adicionar mais coisas será bom, pois é um sinal de que já está aprendendo algo. Espero que todos estejam satisfeitos com os artigos, e gostaria de receber mais sugestões! Galera até mais, e até o próximo artigo. Abraços fui.
Outros artigos postados por este autor
- Sessões em ASP.NET
- Vídeo Aula Photoshop CS2 - Melhorando uma Foto
- Não basta falar só a língua do micro
- Uma nova era: Viva a difusão do AJAX!
- Menu Circular em 3D
- Inserindo Registros
Artigos relacionados sobre ASP
- Artigo Arrays II
- Sistema Monitor
- Código para exibir o Beat - o horário mundial da Internet
- Criando um formulário de contatos com CDONTS
- Tipos de dados no SQL Server
- Compacte bancos de dados MDB pelo ASP/VBS script
Parceiros
BR-Linux.org
Criar WEB
Regularização de Imoveis SP
Montagens de Sites
Templates de Sites
Desenvolvedor de Sites
Elaboração de Sites
Produção de Sites
Programador de Sites
Criadores de Sites
Artigos mais acessados
Desenho de Letras - Construindo fontes TTF
Criando um sistema de login
Enviando email em formato HTML em PHP
Menu Circular em 3D
Cargos e salários na área de informática
Como fazer e modificar calendários
Action Script 2.0 ( Primeira Parte )
10 dicas de Webdesign para salvar seu site
Fireworks VS Photoshop
Serviços
Desenvolvimento de Sites e Sistemas WEB
Otimização de Sites (SEO)
Loja Virtual com Sistema Pagseguro
Sistema de Compra Coletiva
Catálogo de Produtos
Parcerias e Soluções de Publicidade
Portifólio Grupo SOS Designers
Fale Conosco







