Para testar o livro clique aqui : livro de visitas
|
|
|
|
|
|
|
|
|
|
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=;" |
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> |
O nome e o email do usuário e a mensagem são de preenchimento obrigatório e limitamos as mensagens a 200 caracteres. Se o usuário não informar o nome ou o email ou se tentar inserir um mensagem em branco as funções em JavaScript não permitirão a gravação . Se ainda o usuário ultrapassar o limite de 200 caracteres para sua mensagem receberá um aviso para abreviar a mensagem.
O usuário pode clicar no nome do visitante que já assinou o livro para lhe enviar uma mensagem, pode também clicar sobre o ícone do livro para obter ajuda resumida de como proceder para assinar o livro.
|
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>
Acabei... Agora é só você deixar a sua mensagem : livro de visitas
Referências: