Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

Solicitar informações e armazenar em um arquivo txt

Recommended Posts

Neste exemplo, vamos utilizar um formulário para solicitar informações aos nossos visitantes e que essa informação será guardada em um arquivo. Como nós podemos obter informações a partir de diferentes visitantes, neste exemplo vamos criar um novo arquivo cada vez que recebemos informações a partir de um novo visitante. O script irá criar todas as pastas e arquivos automaticamente.

 

Todas as informações obtidas através de nosso formulário serão salvas em um subdiretório dentro da pasta cgi-bin ("c: \ meu_dir \ cgi-bin \ menssagem\"), e as informações serão salvas em um ".txt" arquivo (: "c: \ meu_dir \ cgi-bin \ menssagem\ 1.txt"). Dessa forma, vamos impedir que outros utilizadores de obter informação sem autorização (um arquivo ".txt" localizado no diretório cgi-bin não é acessível pelo cliente). O subdiretório necessário para guardar as informações serão criados automaticamente.

 

Também vamos precisar de um arquivo com um número que será seu conteúdo exclusivo. Este arquivo será usado como um contador, e cada vez que um visitante preenche o formulário a informação fornecida será salvo para um arquivo (por exemplo, informações a partir do primeiro visitante será salvo em arquivo "1.txt", as informações a partir do segundo, em um "2.txt "...). O arquivo contador será criado automaticamente.

Este script nos permitirá adicionar qualquer tipo e número de campos no formulário, para que possamos utilizar a mesma resposta para todas as página em nosso site ( "saveinfo.asp" pode ser utilizado para guardar informações de "form1.html "," form2.html ", etc)

 

form.html

<FORM ACTION="saveinfo.asp" METHOD=post>
<!—Seus campos aqui --> 
<INPUT TYPE=submit value="Submit"> 
</FORM>

 

saveinfo.asp

<% 
Set fs = CreateObject("Scripting.FileSystemObject") 
Folderpath=server.mappath("\") & "/cgi-bin/ menssagem"  
Wcounter=Folderpath &"/counter.txt"  
Set fs = CreateObject("Scripting.FileSystemObject")  
	if fs.FolderExists(Folderpath) then  
		Set a = fs.OpenTextFile(Wcounter)  
		hits = Clng(a.ReadLine)  
		hits = hits + 1  
		a.close  
	else  
		Set a = fs.CreateFolder(Folderpath)  
		hits=1 
	end if  
Set a = fs.CreateTextFile(Wcounter,True)  
a.WriteLine(hits)  
a.Close 
Set fs=nothing  
Set fs = CreateObject("Scripting.FileSystemObject")  
Set a = fs.CreateTextFile(Folderpath & "\" & hits & ".txt")  
   For Each x In Request.Form 
	  a.WriteLine(x &": " & Request.Form(x)) 
   Next 
a.Close  
Set a=nothing  
Set fs=nothing  
%>  
Obrigado por fornecer as informações solicitadas <BR> 
Entraremos em contato com você em breve.

• Linhas 2-18. No caso da pasta em que as informações serão salvas, será criado o arquivo contador. Onde verificamos se a pasta existe,abriremos o contador, leremos o conteúdo e atribuiremos o conteúdo da ReadLine para uma variável chamada "hits", usaremos a função CInt() ,que arredonda o número para o mais próximo, não importando se é positivo ou negativo, abaixo incrementaremos o contador e fechamos (destruímos o objeto) FSO.

• Linhas 20-23. o valor para a variável "hits" será salvo em "counter.txt" arquivo na nossa pasta.

• Linhas 25-32, as informações fornecidas por campo de entrada será guardada em um arquivo. O nome do arquivo será composto pela variável hits (um número) e a extensão ".txt"

• Linhas 34-35. Exibe a resposta.

o A resposta pode ser um texto, como neste exemplo,ou você pode redirecionar o visitante para uma página diferente. O código será:

<% Response.Redirect ( "http://www.sua_pagina.com.br")%>

ou você pode incluir como uma response page o conteúdo em uma página:

<!--# include virtual = "/ minha_resposta.html" ->

 

Para acessar as informações guardadas em arquivos,você pode utilizar o script abaixo. Dessa forma, será possível acessar às informação de todos os visitantes em uma única página. O acesso à informação é protegida (nome e senha para acessar as informações são mostradas na linha dois. Se o nome e a senha não estiverem corretos o formulário será enviado (subrotina "Sendform ()"), e, no caso se estirem corretas as informações, é enviadas (subrotina "Sendinfo ()").Este é um simples modo de user/senha, podendo implementa-las com um sistema de login, mas estruturados, que veremos nos próximos artigos.

 

getinfo.asp

 

<%  
if request.form("name")="Peter" and request.form("password")="yes" then  
Sendinfo () 
else  
Sendform () 
end if  
%> 
<%  
Sub Sendform() %>  
<FORM ACTION="getinfo.asp" METHOD=post> 
Nome: <input type=text name=name><br> 
Password: <input type=password name=password><br> 
<INPUT TYPE=submit value="Submit"> 
</FORM> 
<% End Sub %> 
  
<%  
Sub Sendinfo() 
FolderToCheck = server.mappath("\") & "/cgi-bin/menssagem" 
 Dim fs, f, f1, fc, s 
	Set fs = CreateObject("Scripting.FileSystemObject") 
	Set f = fs.GetFolder(FolderToCheck) 
 Set fc = f.Files 
  
For Each f1 in fc 
  Wfile=f1.name 
Response.write("<hr><b>" & Wfile & "/" & "</b><p>") 
   FiletoCheck=FolderToCheck  & Wfile 
	Set a=fs.OpenTextFile(FiletoCheck) 
	 theinfo=a.ReadAll 
Response.write("<pre>" & Theinfo & "</pre>") 
Next 
Response.write("<hr>Script fornecido pelo <a href=http://www.http://www.xxx.com.br>xxx</a>") 
End sub 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.