Vamos falar sobre Server-Side Includes ou Inclusão do lado do servidor (argh !!) ou melhor : arquivos de inclusão. O que são os arquivos de inclusão ?
Os arquivos de inclusão são arquivos de scripts ASP que são incluídos em páginas de um site com o objetivo de facilitar a manutenção , modularizar o código e facilitar a compreensão do mesmo.
Para você entender melhor , suponha que você esta desenvolvendo o seu site e que o mesmo já conta com umas 100 páginas . Existem elementos comuns a várias páginas como : barra de navegação , logotipos , endereço de e-mail , banners , etc.... Agora imagine que o seu site utilize um script para realizar um cálculo com um taxa fixa e que pode variar com o decorrer do tempo.
E se você precisar alterar alguns desses elementos ? Vai ter que fazer essas alterações em todas as páginas onde eles estiverem contidos... Imagine o trabalho que vai dar !!!
No entanto se você usar os arquivos de inclusão vai ter que alterar apenas o arquivo original e pronto !!!! As alterações são automaticamente incorporadas em todas as páginas durante a inclusão do arquivo. Isto vale para bibliotecas de código , funções , etc...
Convencido. Pois bem como fazer a inclusão destes arquivos ?
Existem duas maneiras de você fazer a inclusão de um arquivo em sua página:
1- A instrução geral e recomendada é :
<!--#include virtual="nome_do_arquivo"-->
isto é chamada de inclusão virtual e você deve informar o nome do arquivo e sua localização absoluta relativa a raiz do site da Web do arquivo atual. A instrução para incluir o arquivo config.asp que esta no diretório arquivos é a seguinte:
<!--#include virtual="/arquivos/config.asp"-->
Os arquivos que podem ser incluidos não se restringem a arquivos com extensão .asp . Você pode incluir arquivos textos com qualquer extensão. Mas lembre-se que os arquivos com extensão .asp possuem uma proteção: quando alguém tenta visualizar o conteúdo de um arquivo com extensão .asp irá ver somente o resultado do processamento do arquivo.
2- Voce pode usar também a seguinte instrução :
<!--#include file="nome_do_arquivo"-->
aqui a palavra chave file inclui arquivos relativos ao diretório onde reside o arquivo que esta sendo incluído. Você não tem que fornecer o caminho especificado para a raiz do servidor ; pode usar um caminho relativo.
Os arquivos de inclusão podem conter código HTML e/ou código ASP mas são processados antes de qualquer código ASP. Vejamos a seguir um exemplo :
Para os exemplos funcionarem em sua máquina você tem que ter o Personal Web Server instalado. Para mais informações leia : Como configurar o Personal Web Server ?
Eu vou criar um diretório teste subordinado ao diretório raiz do meu servidor. Assim se você instalou o PWS no diretório padrão , o local físico da pasta será : C:\Inetpub\wwwroot\teste
Vamos criar dois arquivos de scripts asp : pagina1.asp e pagina2.asp e salvá-los no diretório teste . O arquivo pagina2.asp será incluido no arquivo pagina1.asp quando este for chamado no seu servidor.
Arquivo pagina1.asp
<html> <head> <title>Pagina1.asp</title> </head> <% response.write "Pagina1.asp </p>" response.write "Exemplo de inclusão de arquivos <p>" response.write " Atenção vou incluir o arquivo pagina2.asp </p>" %> <!--#include file="pagina2.asp"--> </body> </html> |
Observe que temos codigo HTML e codigo ASP delimitado pelas tags <% %>. A instrução usada para incluir o arquivo pagina2.asp é : <!--#include file="pagina2.asp"-->
Arquivo pagina2.asp
<% Response.Write "<font color='#0000FF'" response.write "----------------------------------------</br>" response.write "Olá , eu sou o arquivo pagina2.asp <br>" response.write "----------------------------------------</br>" %> |
O arquivo pagina2.asp contém somente script ASP (o código HTML usado esta inserido na instrução Response.write). Abaixo temos o resultado do processamento do arquivo pagina1.asp.
Note que o conteúdo do arquivo pagina2.asp está em azul para destacar e comprovar a inclusão.
Já vou avisar que você não pode faze uma inclusão cíclica . Se no exemplo anterior a pagina2.asp ao ser chamada fizesse uma chamada a página1.asp , ou seja , a pagina1.asp inclui a pagina2.asp que inclui a página1.asp , ocorreria o um erro. Quer tentar ? então altere o código de pagina2.asp para:
<% Response.Write "<font color='#0000FF'" response.write "Pagina2.asp</p>" response.write "----------------------------------------</br>" response.write "Olá , eu sou o arquivo pagina2.asp <br>" response.write "----------------------------------------</br>" %> <!--#include file="pagina1.asp"--> |
Agora rode o arquivo pagina1.asp e você terá a seguinte mensagem de erro:
Inclusões Dinâmicas
Como os arquivos de inclusão são executados antes de qualquer código asp não podemos usar inclusões dinâmicas. Se você tentar rodar o script asp abaixo :
<% Dim UrlPagina UrlPagina = "/teste/teste.asp" %> <!--#include virtual="<%=UrlPagina%>"--> |
Não vai funcionar , pois como os arquivos de inclusão são processados antes de qualquer código da página , a variavel UrlPagina não será encontrada . Podemos contornar este problema da seguinte forma :
1-) usar instruções Select/Case como no exemplo a seguir:
<%Select Case UrlPagina Case "Pagina1.asp" %> <!--#include virtual="/pagina1.asp"--> <% Case "Pagina2.asp" %> <!--#include virtual="/pagina2.asp"--> <% Case "Pagina3.asp" %> <!--#include virtual="/pagina3.asp"--> <% Case "Pagina4.asp" %> <!--#include virtual="/pagina4.asp"--> <%End Select%> |
2-) usar o objeto FileSystemObject para ler o conteúdo de um arquivo e inserí-lo na página ASP. Abaixo um exemplo , onde o arquivo teste.htm é lido e incluído na página asp:
<% Option Explcit %> <% Dim StrArquivo , objFSO , objArquivo Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 'define o caminho e nome do arquivo strArquivo = "C:\Inetpub\wwwroot\teste\teste.htm" 'lê o arquivo teste.htm set objArquivo = objFSO.OpenTextFile(strArquivo) 'inclui o conteúdo do arquivo Response.Write objArquivo.ReadALL 'fecha o objeto e libera memória objArquivo.close set objArquivo = Nothing set ObjFSO = Nothing %> |
Obs: note que você deve fornecer o caminho físico de localização do arquivo.
Ao usar o código acima você deve ficar atento ao seguinte detalhe : O arquivo que você vai ler usando o objeto FileSystemObject somente vai poder ser aberto e lido quando o script ASP já estiver sendo executado, logo , se houver no seu arquivo algum código ASP ele não será executado , apenas será incluído na forma como estiver como um arquivo HTML. Por isso este método deve ser usado para incluir apenas arquivos textos e HTML sem código ASP.
Acabei , Feliz 2002...
José Carlos Macoratti