¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

CGI: Primeros Pasos

por monoswim

Introducción

Esto es muy fácil y a todos nos ha pasado más o menos lo mismo: Un buen día instalamos el Office y vemos que hay un programa que se llama FrontPage, entonces nos decimos: Y esto??? - lo abrimos y vemos que es muy parecido al Word pero que tiene una solapa que dice HTML entonces nos cae la ficha de que es un programa para hacer páginas web!!!

Ahí mismo empezamos a realizar nuestra primer página web dedicando horas enteras a aprender y transitar en este nuevo mundo en donde aparecen de golpe muy pero muy raras pero que con el tiempo las vamos aprendiendo.

Nos mudamos a entornos más serios como el DreamWeaver, codificamos nuestro propio código HTML, colocamos un par de scripts de JavaScript, le hacemos un muy lindo estilo en CSS y nos sentimos los programadores más prestigiosos del planeta...Pensamos: Bill Gates??? ese no sabe nada...mirá yo la página que me hice solito!!!!! se mucho más que ese payaso!!!!!

Pero de pronto alguién que ya había pasado por todo esto nos hace alguna pregunta como:

¿Tienes formularios de contacto en tu página?
¿Tienes algún foro de discusión?
¿Tienes loggin de usuarios?
¿Usas base de datos?
¿Tiene algún programa que se ejecute del lado del servidor?
Y ante esas preguntas lo único que podemos responder es: No y eso como se hace??? y obviamente nuestra estima se va al piso!!!

Pues bien, si estás pasando por esta situación estás en el lugar correcto ya que en este tutorial veremos justamente eso: Como empezar a programar en PERL para que agregarle funcionalidad a nuestros sitios web

Tecnología Cliente/Servidor

Lo primero que tenemos que diferenciar es el ambiente de ejecución de cada archivo, todo lo que veníamos haciendo hasta ahora (.html .js .css) son archivos que se ejecutan en la computadora del usuario (cliente) con lo cual puede ser que no se vea correctamente en todos los navegadores, ya que existen varios sistemas operativos y navegadores web que pueden llegar a visualizar scripts de distinta manera, o que en alguno ni siquiera funcione.

Pero en cambio, los programas que se ejecutan en el lado del servidor (los scripts CGI de PERL) tienen la ventaja de ejecutarse directamente en la computadora del servidor, con lo cual siempre será la misma computadora, razón por la cual siempre se ejecutará de la misma manera, salvando el problema anterior, además podemos hacer que se conecten al mismo script una persona que usa linux, otra windows, otra solaris, otra unix y utilicen de la misma manera toda la funcionalidad de nuestra página, que se ejecutará en el servidor y enviará al navegador del usuario solamente HTML standard, entendible por cualquier navegador (también algún que otro JavaScript y CSS).

Ejemplo de Cliente/Servidor

Tenemos un HTML que con un formulario de contacto, cuando el usuario envía el form, los datos del mismo son transmitidos hacia el script de PERL del servidor web, que administra esta información (guardándola en una base de datos o enviándola por mail) y devuelve un mensaje de HTML al navegador web para que el usuario vea algo así como: "Gracias por comunicarse con nosotros, su mensaje ha sido enviado correctamente".

Tipos de Servidores

Bueno, existen básicamente 2 grandes sistemas operativos que se usan en las máquinas servidores: Linux y Windows. Y existen varias discusiones sobre cual es mejor que el otro, para no entrar en esa discusión les digo que no importa, ya que PERL se puede ejecutar perfectamente en ambos!!! Si bien, en un principio PERL nació en tecnologías Unix/Linux, ahora se puede ejecutar perfectamente bien en ambos!!!

Ahora bien, dentro de la computadora, tiene que haber un programa que realice las tareas del servidor web. Los más comunes son el Apache (Linux, Windows), IIS (Windows), y otros. Lo único importante del servidor web es saber cual es la carpeta que nos da para ejecutar los programas de PERL, esta carpeta generalmente se llama CGI-BIN o Local-CGI.

Dentro de esta carpeta subiremos nuestros archivos de PERL (.pl o .cgi) y le daremos permisos para que nuestros usuarios los puedan ejecutar. (CHMOD 755 en linux).

Como hago un script CGI en PERL?

En PERL se da lo mismo que en HTML, el texto no tiene formato alguno, si lo abrimos con el WordPad o el Block de notas de windows vemos perfectamente los códigos fuente!!! Con lo cual les estoy diciendo que tienen que usar algún editor de PERL o de Texto puro, que no le agregue formato como hace el microsoft word y otros, que no son para programar.

Existe un muy buen editor de PERL que se llama dzsoft perl editor y lo pueden encontrar en:
www.dzsoft.com

Cuando hagamos este primer script le debemos colocar la extensión .pl o .cgi, si bien puede que no sea necesario es mejor hacerlo así.

BIEN, ya tenemos el el block de notas de windows y creamos un archivo que se llama miprimerscript.pl y lo subiré a mi carpeta CGI del servidor...Pero que coloco en el archivo???

Bueno, lo primero que debemos colocar en la primera linea del código es la ubicación del intérprete de PERL (línea que se llama sheebang y empieza con #!) Y eso????. Si, para que el servidor pueda procesar los scripts CGI de perl debe tener instalado el intérprete de PERL, que es muy fácil de instalar en cualquiera de los sistemas operativos y hasta ya viene en muchas de las distribiciones de Linux.

Entonces, tenemos que conocer cual es la ubicación que tiene el intérprete de PERL en el servidor para poder ejecutar estos archivos. Si bien le podemos preguntar a nuestros proveedores de hosting, generalmente se encuentran en el mismo lugar, de manera que nuestra linea de código quedará parecida a estas:

Si es linux:

#!/usr/bin/perl

Si es windows:

#!c:/perl/bin/perl.exe

Imprimir mensajes a través del navegador del usuario

Cuando tenemos el script, que realiza todos los procesos como loggeo de usuario, administrar bases de datos y demás funciones que podrán aprender en todos los demás tutoriales que se encuentran en este sitio, debemos mandarle al navegador web el código de HTML que queremos que le muestre al usuario cuando el script es ejecutado, que en nuestro caso será algo así:

#!/usr/bin/perl

print "content-type: text/html \n\n";

print "Bienvenidos a mi script, si vemos este mensaje es porque funciona todo perfecto";

exit(1);

Tres cuestiones a tener en cuenta:

  • 1) Antes de imprimir el mensaje de HTML colocamos la linea de
    print "content-type: text/html \n\n";

    con lo cual le indicamos que es un texto de HTML. Sin esta línea de código, el navegador mostrará un mensaje de error porque nunca se supo que el texto era de HTML y que había que mostrarlo por el navegador.

  • 2) Después de cada línea de código colocamos un punto y coma (;) esto es una regla de PERL, que luego veremos en otros tutoriales
  • 3) Al terminar el script colocamos exit(1); con lo cual le damos un fin a nuestro script



Notas Finales

Este tutorial está escrito para aquellos que tienen alguna experiencia en desarrollos de sitios web del lado del cliente (html, frontpage, dreamweaver, javascript, css) y quieren aprender las bases sobre PERL, para realizar aplicaciones del lado del servidor.

Gracias por visitarlo y espero que les sirva.

Puedes continuar con la siguiente parte de este tutorial en:
CGI: Primeros Pasos Parte II

PUBLICIDAD
Aprende a instalar formularios web con nuestro video tutorial
Con este nuevo video tutorial que tenemos preparado para ti, te explicamos lo que es un CGI y después te llevamos paso a paso a través del proceso de instalación del NMS Formmail, un formulario web gratuito.

¡Aprende de manera sencilla y rápida a instalar un formulario web! Como el tutorial lo hemos hecho en video es sumamente sencillo seguir las instrucciones y comprender más a fondo lo explicado.

¡Checa todo los detalles haciendo click aquí!

Comparte:
Categorías de Tutoriales:
En Nuestros Foros:

    Software error:

    junk after document element at line 1, column 32, byte 32 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
    

    For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License