Anda di halaman 1dari 5

Universidad Politcnica de Victoria

Maestra en Ingeniera Mecatrnica Tecnologa Orientada a objetos


Fundamentos de CGI usando C++

Catedrtico: Dr. Miguel Morales-Sandoval Alumno: Abraham Azahel Betancourt Vera

Universidad Politcnica de Victoria


Introduccin
La interfaz de pasarela comn (Common Gateway Interface, CGI) es un protocolo genrico que permite extender las capacidades de HTTP. Los programas en CGI aaden funcionalidad al servidor Web, funcionalidad que podra abrir agujeros de seguridad en el servidor, ya que una aplicacin en CGI mal diseada podra permitir acceso total o parcial al servidor. En general, es necesaria la presencia de dos elementos, una pgina Web en formato HTML con un formulario donde el usuario introduce sus datos, y un programa CGI en el servidor, que recibe y procesa los datos del usuario.

Fundamentos de CGI usando C++


Lo que normalmente se conoce por CGI son pequeos cdigos de programa que se adaptan al estndar Common Gateway Interface (CGI) mediante el cual se puede acceder a servidores de internet que envan informacin a los usuarios. Mediante este sistema la web se comunica con recursos externos a la misma, como pueden ser bases de datos, y facilita la interactuacin del internauta directamente con la mquina. La programacin de las secuencias CGI puede realizarse utilizando diversos lenguajes, como C, Visual Basic, AppleScript, Perl, etc. Las aplicaciones escritas en alguno de estos lenguajes, como C, necesitan ser compiladas para que se puedan ejecutar. Los pasos fundamentales del funcionamiento de un CGI, concretamente permite a los usuarios de una pgina web acceder a la consulta de una base de datos, si bien la explicacin bien sirve para cualquier proceso adaptado al estndar CGI. 1. Primero de todo es necesario escribir la aplicacin CGI o bien bajarse una de las mltiples que de manera gratuita, o por muy bajo precio, se ofrecen en internet. 2. A continuacin se debe colocar la aplicacin CGI en el servidor. En la mayor parte de ellos existe un directorio especial en el que colocar este tipo de ficheros, normalmente acostumbra a responder a nombres como cgi-bin, cgi-local o similar, de manera que slo los programas CGI que han sido archivados en ellos son operativos, no funcionando en cualquier otro

CGI usando C++

Pgina 2

Universidad Politcnica de Victoria


directorio. La razn de este comportamiento se debe a medidas de seguridad y control. 3. Para que la aplicacin CGI se ponga en funcionamiento es necesario que sea llamada desde una pgina web, por lo tanto debe existir un enlace, que en el caso de una base de datos suele dar lugar a un documento web en forma de formulario, donde el usuario escribe los datos que sern enviados al servidor. 4. El programa CGI se conecta a la base de datos asociada y solicita a la misma la informacin escrita por el usuario. La base de datos responde al CGI aportando datos que pueden estar en formato texto, grfico, sonoro, vdeo, etc. 5. Por ltimo, el programa CGI, una vez recibidos los datos, se dedica a darles una apariencia que sea comprensible para el usuario, es decir, construye un documento HTML en funcin de los parmetros dados por el programador, que incluye la informacin extrada de la base de datos. Esta pgina web se comporta como cualquier otra, pudiendo ser impresa, archivada en un disco duro o simplemente visualizado.

Explanation of how transfer information from the web browser to the web server and viceversa.
GET y POST son dos mtodos empleados para enviar los datos de los formularios desde el navegador al servidor Web, especificados mediante la directiva METHOD. La principal diferencia entre POST y GET es que el CGI recibir los datos enviados con POST leyendo la entrada estndar, mientras que los enviados con GET se recibirn por lneas de comandos y la variable de entorno QUERY_STRING. Desde un punto de vista puramente prctico, debido a que muchos sistemas operativos ponen lmite a la longitud de la lnea de comandos, suele ser mejor usar POST, reservando GET para formularios con pocos datos.

A travs del mtodo post enviamos los datos ingresados en la pgina saveemployee.html, hacia el archivo employeecgi.cgi. <form method = "post" action = "/cgi-bin/employeecgi.cgi"> Los datos ingresados en la pagina son buscados y encontrados por el archivo .cgi, los que almacena en variables para ser usados por el programa dentro del cgi.
CGI usando C++ Pgina 3

Universidad Politcnica de Victoria


int tipoStart = dataString.find("tipoempleado=" )+ 13; int endTipo = dataString.find("&firstname"); tipoempleado = dataString.substr(tipoStart, endTipo - tipoStart); Se crea un archivo para escribir los datos ingresados a travs de la pagina html. // output to file ofstream outFile( "employees.txt", ios::app ); // file was not opened properly if ( !outFile ) { cerr <<"Error: could not open contact file."; exit( 1 ); } // end if

Se escriben los datos en el archivo. // append data to clients.txt file outFile << firstname << " " << lastname << "\n" << securitynumber << "\n" << ventas << " " << commission << " " << salario << " " <<"\n"<< value<< " " << "\n\n"; La informacin ingresada es mostrada en el navegador web. // output data to user cout << "<table><tbody>" << "<tr><td>First Name:</td><td>" << firstname << "</td></tr>" << "<tr><td>Last Name:</td><td>" << lastname << "</td></tr>" << "<tr><td>Securuty Number:</td><td>" << securitynumber << "</td></tr>" << "<tr><td>Ventas:</td><td>" << ventas << "</td></tr>" << "<tr><td>Comision:</td><td>" << commission << "</td></tr>" << "<tr><td>Salario:</td><td>"
CGI usando C++ Pgina 4

Universidad Politcnica de Victoria


<< salario << "</td></tr>" << "<tr><td>Ganancias:</td><td>" << value << "</td></tr>" << "</tbody></table>" << "</body>\n</html>\n"; En otras palabras una definicin ms formal es: el primer paso es una solicitud que se formula desde una pgina web al servidor donde reside el CGI. A continuacin el CGI solicita a la base de datos la informacin adecuada y es respondido. Finalmente se envan los datos, ya formateados para ser comprensibles, a la pgina web, donde son consultados por el usuario.

CGI usando C++

Pgina 5

Anda mungkin juga menyukai