ASP - Obtendo informações do usuário


Você pode querer obter informações dos usuários que acessam suas páginas , e, com ASP isto é muito simples de fazer.  ASP contém no objeto request a coleção ServerVariables que pode ser usada para obter uma série de informações a partir da requisição de sua página ASP.

A coleção ServerVariables contém toda a informação gerada quando da requisição de um serviço pelo navegador combinada com as variáveis ambientais do ambiente do servidor.

Sintaxe: Request.ServerVariables(variavel)

Variavel : especifica o nome das variáveis do ambiente do servidor a retornar

Geralmente lemos estas informações para obter informações sobre o servidor ou sobre o navegador. Os membros mais importantes da coleção ServerVariables são:

  1. Path_info – Armazena a informação do caminho da URL requisitada pelo navegador.(Não armazena a raiz do diretório do endereço URL.)
  2. CONTENT_LENGHT – permite determinar a extensão do conteúdo da solicitação HTTP do cliente usando o método POST.
  3. Query_String – Contém os parâmetros passados como parte de uma requisição a uma URL . (Tudo depois de um "? " é armazeando)
  4. SERVER_NAME – Fornece o nome do servidor contido na URL da página atual.
  5. HTTP_UA_COLOR – Indica o número de cores disponíveis na máquina do usuário.
  6. HTTP_UA_PIXELS – Contém a resolução da tela do navegador que fez a requisição.
  7. REMOTE _ADRR – O endereço IP do host remoto que esta solicitando o serviço.
  8. REMOTE _HOST – O nome do host que esta fazendo a solicitação do serviço.
  9. LOGON_USER - A conta no Windows NT no qual o usuário esta logado.
  10. HTTP_UA_OS – O nome e a versão do software servidor que está respondendo ao pedido.
  11. AUTH_TYPE - O método de autenticação que o servidor usa para validar usuários quando eles tentam acessar um script protegido.
  12. LOGON_USER - A conta no Windows NT do usuário.
  13. SERVER_PORT – O número da porta da qual a requisição foi enviada
  14. SERVER_PROTOCOL – O nome e a versão para o protocolo de informação.
  15. SERVER_SOFTWARE – O nome e a versão do software do servidor.
  16. SCRIPT_MAP – Informa a base da URL
  17. SCRIPT_NAME – Informa todo o caminho virtual para o roteiro presente.
  18. REQUEST_ADDR – Informa o endereço IP do host remoto que fez a requisição.
  19. REQUEST_METHOD – O método usado para fazer a requisição.(GET, POST, etc..)

Como Exemplo veremos um script que exibe as variáveis de um servidor da geocities:

<%= Request.ServerVariables("SERVER_NAME") %> retorna geocities.com

<%= Request.ServerVariables("REQUEST_METHOD") %> retorna GET

Para exibir todos os cabeçalhos HTTP enviados pelo seu navegador o script seria:

<% Replace(Request.ServerVariables("ALL_RAW"), vbcrlf, "<BR>" %>

Para certificar-se que um formulário foi submetido a página WEB podemos usar o seguinte script:

Variavel = Request.ServerVariables("SCRIPT_NAME")

Para ler o endereço IP do cliente, temos o script:

Request.ServerVariables("REMOTE_ADDR")

Se você deseja armazenar as informações em um banco de dados basta definir o que quer armazenar e criar uma base de dados Access ( ou qualquer outra) para guardar os dados que serão coletados.

Como exemplo eu vou criar um formulário que o usuário irá acessar para cadastramento. O código ASP é acionado na carga do formulário e obtêm as informações do usuário salvando-as em um banco de dados. (Você pode armazenar em um arquivo XML ou TXT)

Vou criar uma tabela chamada origem no banco de dados visitas.mdb com a seguinte estrutura:

- origem :  informa o endereço de origem de onde partiu a requisição para a página

- ip : informa o ip de origem da requisição

- serverorigem : o nome do servidor de origem da requisição

- data : a data da ocorrência.

Vamos armazenar os valores através do objeto requeste em variáveis definidas para depois através de uma instrução SQL INSERT INTO  gravá-las na base de dados visitas.mdb

urlorigem = Request.ServerVariables("HTTP_REFERER")
iporigem = Request.ServerVariables("REMOTE_ADDR")
serverorigem = Request.ServerVariables("SERVER_NAME")
navegador = Request.ServerVariables("HTTP_USER_AGENT")

Na variável navegador eu vou guardar o nome do Navegador que originou a requisição . Ela será armazenada no campo origem juntamente com o endereço de origem.

O formulário tem o seguinte jeitão :

O código do formulário é o dado a seguir:

<html>
<body>
<form name="form1" method="post" action="processa.asp">
<table width="100%" border="0" cellpadding="1">
<tr bgcolor="#00FF99">
<td colspan="2"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif">Cadastramento</font></div></td>
</tr>
<tr>
<td width="20%">Nome</td>
<td width="80%"><input name="textfield" type="text" size="50" maxlength="80"></td>
</tr>
<tr>
<td>Email</td>
<td><input name="textfield2" type="text" size="50" maxlength="100"></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Enviar"> <input type="reset" name="Submit2" value="Limpar">
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>

</body>
</html>
<%
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/inetpub/wwwroot/origem/visitas.mdb"
Set ObjCon = Server.CreateObject("ADODB.Connection")

ObjCon.Open ConnString

Dim urlorigem , iporigem, serverorigem, navegador

urlorigem = Request.ServerVariables("HTTP_REFERER")
iporigem = Request.ServerVariables("REMOTE_ADDR")
serverorigem = Request.ServerVariables("SERVER_NAME")
navegador = Request.ServerVariables("HTTP_USER_AGENT")


If urlorigem = "" Then
   urlorigem = "veio do Navegador " & navegador
End if

Set objRS = ObjCon.Execute ("INSERT INTO origem (origem, ip, server ,data) VALUES('" & urlorigem & "','" & iporigem & "' ,'" & serverorigem & "', '" & now() & "')")

Set url = Nothing
Set objRS = Nothing
ObjCon.Close
Set ObjCon = Nothing
%>
 

A parte destacada em cinza é o código do formulário. O código em destaque amarelo é o código ASP. Neste código cabe destacar:

Se urlorigem estiver vazio indica que o usuário digitou a url diretamente no navegador . Na carga do formulário os dados serão gravados no banco de dados. Os resultados obtidos para testes realizados em uma máquina local podem ser vistos abaixo:

Você pode muitas utilidades para as variáveis de ambiente de servidor.

Até o próximo artigo ASP.


Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#
 

   Gostou ?   Compartilhe no Facebook    Compartilhe no Twitter

Referências:


José Carlos Macoratti