| << tópico anterior | próximo tópico>> |
As server-side includes são diretivas que você coloca em uma página HTML e que o servidor web interpreta antes de enviá-la ao browser do usuário. Por exemplo, digamos que você queira inserir em todas as páginas de seu site um cabeçalho padrão, com um logotipo. Ao invés de ter de copiar o código HTML do cabeçalho em todos as páginas, você pode colocá-lo em um arquivo separado (usaremos cabecalho.html) e colocar a seguinte diretiva SSI nas páginas onde quer que o cabeçalho apareça:
<!--#include virtual="cabecalho.html" -->
No caso, essa diretiva diz ao servidor para incluir o conteúdo do arquivo "cabecalho.html", na posição onde a diretiva está (a diretiva será substituída pelo conteúdo do arquivo antes de a página ser enviada para o browser do visitante).
Para ativar o uso das server-side includes em uma página de seu site, basta fazer com que o arquivo tenha a extensão .shtml. Quando uma página com essa extensão é solicitada por um usuário, o servidor web vai procurar por diretivas SSI por todo o código HTML da página e substituí-las pelo valor devido. Como essa busca por diretivas é um processo que exige um pouco mais de processamento que simplesmente fornecer uma página HTML comum, o uso da extensão especial ajuda a evitar que o servidor que tenha que varrer todos os arquivos à procura de diretivas SSI, ou seja, só os arquivos que realmente estão "marcados" como tendo SSI é que são interpretados.
As diretivas SSI sempre estão na forma de comentários, como no exemplo genérico:
<!--#elemento atributo="valor" atributo="valor" ... -->
Os valores devem, de preferência, estar entre aspas e devem haver um ou mais espaços em branco antes do final de comentário (-->). Outro detalhes da notação é que não pode haver espaços entre o início do comentário (<!--) e o sinal de tralha (#) e o elemento.
#config
Configura o ambiente SSI. O ambiente é resetado para cada documento SSI. Você pode configurar a mensagem de erro, o formato dos tamanhos de arquivos e os formatos de data e hora.
#echo
Imprime o valor de uma variável. As variáveis disponíveis são:
Nome da variável Significado DOCUMENT_NAME nome do arquivo DOCUMENT_URI URL relativa do arquivo QUERY_STRING_UNESCAPED string de parâmetros CGI, descodificada DATE_LOCAL data/hora locais DATE_GMT data/hora GMT LAST_MODIFIED data/hora da última modificação SERVER_SOFTWARE nome do software do servidor web SERVER_NAME nome do servidor web GATEWAY_INTERFACE versão o protocolo CGI SERVER_PROTOCOL protocolo do servidor SERVER_PORT porta do serviço REQUEST_METHOD método da solicitação HTTP PATH_INFO dados adicionais do path PATH_TRANSLATED versão "traduzida" do path SCRIPT_NAME nome do script QUERY_STRING string de parâmetros CGI REMOTE_HOST endereço da máquina cliente REMOTE_ADDR endereço IP da máquina cliente AUTH_TYPE método de autenticação REMOTE_USER usuário remoto REMOTE_IDENT identificação do usuário (RFC 931) CONTENT_TYPE tipo do conteúdo CONTENT_LENGTH tamanho em bytes do conteúdo
Por exemplo, a seguinte diretiva causaria a impressão do IP da máquina do usuário:
<!--#echo var="REMOTE_ADDR" -->
#exec
Executa um programa e insere sua saída no documento. Use o atributo "cgi" para acessar scripts através de sua URL ou o atributo "cmd" para comandos do sistema. Por exemplo:
<!--#exec cgi="/cgi-bin/teste.pl" -->
<!--#exec cmd="/bin/date" -->Importante:
Por questões de segurança, não é permitido usar o atributo "cmd" da diretiva "exec". O atributo "cgi" deve ser usado em seu lugar.
#flastmod
Causa a impressão da data de modificação de um arquivo. Use o atributo "virtual" para especificar arquivos através de sua URL ou o atributo "file" para usar o caminho no sistema de arquivos. Exemplo:
<!--#flastmod virtual="teste/extra.txt" -->
<!--#flastmod file="/home/usuário/extra.txt" -->
#fsize
Insere o tamanho de um arquivo. O uso dos atributos "virtual" e "file" é o mesmo do último comando. Exemplo:
<!--#fsize virtual="teste/extra.txt" -->
<!--#fsize file="/home/usuário/extra.txt" -->
#include
Insere um arquivo no documento. Use o atributo "virtual" para incluir baseado na URL e "file" para basear-se no caminho. Exemplo:
<!--#flastmod virtual="teste/extra.txt" -->
<!--#flastmod file="/home/usuário/extra.txt" -->
#printenv
Imprime todas as variáveis e seus valores. Por exemplo:
<!--#printenv -->
#set
Atribui um valor a uma variável. Por exemplo:
<!--#set var="um_numero" value="123" -->
Há outras formas de se usar as SSI, com expressões condicionais e controle de fluxo. Para saber mais, por favor visite a página de SSI do Apache.
| << tópico anterior | próximo tópico>> | |