La Interfaz de Enlace Común (Common Gateway Interface) es una especificación que define cómo se
comunicarán los programas ejecutables con las páginas HTML, o mejor dicho, con los servidores
HTTP. A los programas que interactúan con dichos servidores se les denomina comúnmente Guiones
CGI o simplemente CGI. La función principal de un CGI es procesar información que le proporciona
el servidor, generalmente debida a peticiones del cliente (usuario), devolviendo la nueva
información al servidor. Un ejemplo típico es el procesamiento de formularios: nosotros
proporcionamos datos al llenar los campos en éste y los enviamos al servidor, un CGI guardado
en el servidor procesa nuestros datos y devuelve una página acorde a dicha información.
Alguna vez pensé que hacer un programa CGI sería muy difícil, afortunadamente estaba equivocado.
Aunque generalmente los CGIs se hacen en Perl, yo prefiero usar mi amado C++.
Antes de codificar, debemos saber que:
Una vez compilado el programa anterior (cgi1.exe o cualquier otro nombre), se deberá colocar en el directorio que nos tiene asignado el servidor HTTP. Recuerda que debes tener permiso para ejecutar CGIs (habla con el administrador). Luego, con el siguiente documento HTML, llamaremos a nuestro CGI:#include <iostream> #include <cstdlib> int main() { /* Es obligatorio decirle al servidor que invocó nuestro programa qué tipo de información le estamos enviando. En este caso enviamos texto HTML, pero tenemos la libertad de enviar varios tipos de archivo. */ std::cout<<"Content-type: text/html\n\n"; //Por último enviamos la información, la cual debería mostrar el nombre del servidor. std::cout<<"<html><head><title>mi primer cgi</title></head><body>mi primer cgi\nServidor: "; std::cout<<getenv("SERVER_NAME")<<"</body></html>"; return 0; }
Por ahora es todo, posteriormente ampliaremos esta información.<html> <body> <form method="get" action="./cgi1.exe"> <input type="text"> <input type="submit" value="Enviar"> </form> </body> </html>