Los SSI (server-side includes, que se podría traducir como “inclusiones del lado del servidor” o algo así), se utilizan para introducir contenido dinámico en las páginas. Una breve línea inscrita en el código html, con una sintaxis especial, ordenará al servidor que ejecute una acción que modificará el contenido de la página.

Por regla general, los SSI sólo se pueden incluir en páginas que acaben con la extensión .shtml, a menos que el servidor esté configurado para aceptarlos también en páginas .html. De cualquier modo, infórmate sobre si tu servidor admite SSI, pues no todos (en particular los gratuitos) lo hacen.

Los tipos de comandos más utilizados son “include virtual” , “exec cgi” y “echo var”. Los del primer tipo se utilizan para incluir un contenido situado en otra página. “Exec cgi” sirve para ejecutar un script. “Echo var”, para mostrar informaciones procedentes del servidor, como la hora o el navegador utilizado por el visitante.

El código consta siempre de dos partes. La primera representa el tipo de acción a realizar, y la segunda el objeto de esa acción. Se sitúa entre , que indican el comienzo y el fin del código, similarmente a los comentarios.

Aquí sólo explicaremos el funcionamiento de “include virtual” y “exec cgi”, que son con mucho los más interesantes. Para “echo var” y otros tipos de SSI, puedes consultar (en inglés) esta página.

1. Comandos “include virtual”.- La primera parte del código es #include virtual, y la segunda, la ruta a un archivo entrecomillada. Por ejemplo, . Aquí le estamos diciendo al servidor que en el punto donde se encuentra este código nos incluya el contenido del documento “header.txt”, que se encuentra en el mismo nivel (en la misma carpeta) que la página actual. Si escribiéramos le ordenaríamos que incluyera el contenido de “header.txt”, que está en la carpeta “cabeceras”, situada en el mismo nivel de la página actual. Añadiendo ../ al comienzo de la ruta del archivo, le indicamos al servidor que suba un nivel desde la página actual para encontrar la carpeta y/o documento referenciados. La ruta puede ser relativa al directorio raíz, por ejemplo, . En este caso le estamos pidiendo al servidor que incluya en la página actual -hállese ésta en el nivel en que se halle- el contenido de “header.txt”, documento que se halla en la carpeta “cabeceras”, la cual se encuentra a su vez en el primer nivel del directorio raíz. Es el método más práctico.

Este tipo de comandos es útil, por ejemplo, para introducir en todas las páginas de un sitio web la misma cabecera y el mismo pie, que sólo tendríamos que escribir una vez. Y, de la misma manera, cuando quisiéramos modificarlos, sería suficiente con cambiar el código en esas dos páginas de cabecera y pie para que los cambios se aplicaran a todo el sitio.

También se puede emplear el comando “include” para mostrar los contenidos generados por un script, lo que nos evita tener que modificar el contenido html del script para adaptarlo al aspecto de nuestras páginas.

Supongamos que tenemos un script llamado weather.cgi, situado en la carpeta cgi-bin, cuya función es mostrar los datos meteorológicos de los aeropuertos. Supongamos igualmente que para activar el script necesitamos llamarlo con el navegador añadiendo el código del aeropuerto, de esta manera: http://www.misitio.com/cgi-bin/weather.cgi?clave=LTCC. Si el autor del script no ha previsto ningún código html específico, al introducir esa url nos aparecerán los datos “pelados”, en el cuerpo y el tipo de letra por defecto de nuestro navegador, sobre un fondo blanco. Para modificar su aspecto deberíamos incorporar al script el código html necesario, lo que puede ser un lío considerable.

Pero también podemos introducir en una página ya construida la línea . Veremos entonces que en ella aparecen los datos meteorológicos del aeropuerto LTCC, “envueltos” en el código html de la página y en las etiquetas específicas con que queramos “vestir” al SSI, por ejemplo, y , y , etc.

2. Comandos “exec cgi”.- La sintaxis es igual que en el caso anterior, pero sustituyendo “#include virtual” por “#exec cgi”. Este comando ordena al servidor que ejecute un script y que incluya los resultados de esa ejecución en el punto en que se halla el código. A diferencia del caso anterior, la variable no hay que añadirla a la ruta del script en la línea de código, sino a la url de la página .shtml. De esta manera, la misma página se mantiene “envolviendo” los resultados de cada ejecución del script.

Retomemos el ejemplo anterior para mostrar el funcionamiento de esta directiva. El comando “include virtual” requiere la ruta completa del script, más la variable que queramos activar. Para mostrar el tiempo en diez aeropuertos, deberemos, pues, incluir diez SSI, cada uno con la variable correspondiente. Utilizando “exec cgi”, sin embargo, nos bastará introducir sólo una vez el SSI.

Digamos que hemos llamado a la página donde tenemos el SSI “tiempo.shtml”. El código del SSI será simplemente . Para activar la ejecución, añadamos la variable antes mencionada a la url de la página, de esta manera: http://www.misitio.com/tiempo.shtml?clave=LTCC. Aparecerán los datos meteorológicos del aeropuerto LTCC. Si luego llamamos a la url http://www.misitio.com/tiempo.shtml?clave=RTSB, tendremos el tiempo correspondiente al aeropuerto RTSB. Para activar las diferentes urls podemos utilizar una serie de enlaces o emplear un formulario javascript que nos pida introducir el código del aeropuerto.

Si el script es de un tipo que se activa simplemente introduciendo en el navegador su url, sin necesidad de variables añadidas, muy posiblemente (dependiendo de las configuraciones del servidor) será lo mismo llamarlo con un comando del tipo “include virtual” que “exec cgi”.

Por último, conviene añadir que ambas directivas funcionan con cgis en Perl, pero en el caso de las páginas en PHP el caso es diferente. “Include virtual” funciona igual para mostrar el contenido de una página PHP (como de un archivo .html o .txt), pero “exec cgi” sólo activará un programa PHP si el servidor tiene instalada la versión cgi de este lenguaje. En caso contrario sólo podrás activar el programa desde otra página PHP, con las directivas correspondientes.

Leave a Reply

Your email address will not be published. Required fields are marked *