Los CGI (Common Gateway Interface) son programas que se ejecutan en el servidor y permiten que se genere una p�gina web de forma din�mica.
S�, siempre que se cumpla:
Tenga en cuenta que el funcionamiento de sus propios CGIs es cuesti�n suya y no est� inclu�do en el soporte t�cnico de los servidores.
Los CGI no pueden ser colocados en cualquier directorio y esperar que funcionen. Un CGI ha de estar en un directorio que tenga permisos de ejecuci�n de scripts, si se trata de un script en Perl, o de ejecuci�n de archivos exe (que incluye scripts) si se trata de un ejecutable.
El directorio cgi-bin al crearse y notificar la intencion de uso de cgi a [email protected] se le dispone de permisos de ejecuci�n y se eliminan los permisos de lectura y listado para proteger mejor los fuentes. Normalmente colocar� ah� sus propios CGI.
Si estos CGI han de escribir en algun fichero este ha de tener permisos de escritura. Por ello deber� solicitar a [email protected] que le asigne este permiso de escritura en los directorios que desee.
Por motivos de seguridad no es aconsejable que el directorio cgi-bin tenga permiso de escritura por lo que no debe crear CGI que escriban en el. Dirija sus escrituras contra un directorio de datos fuera de cgi-bin.
De todas formas, hay CGI disponibles freeware en Internet que escriben en archivos que se encuentran en el mismo directorio del Script. Esta es una pr�ctica poco recomendable. Para que estos CGI funcionen es necesario que al directorio en el que se encuentran se le asignen permisos de ejecuci�n y de escritura simult�neamente. Y esto constituye un importante agujero de seguridad para su sitio web.
S�, se trata de CGI.pm. Facilita much�simo las tareas de la programaci�n de CGIs. La documentaci�n la puede encontrar http://www.genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.html.
Nuestros servidores funcionan sobre el sistema operativo Windows NT. Una de las ventajas del Perl es que al ser interpretado es muy portable. Sin embargo no lo es del todo. Hay funciones de la biblioteca est�ndar que s�lo existen en sistemas Unix y no en Windows NT.
Debe tener esto en cuenta y que no se puede garantizar que los scripts en Perl que encuentre en Intenet vayan a funcionar sin cambios en Windows NT. Hay algunos que s�, pero normalmente es porque est�n dise�ados con idea de portabilidad desde el principio.
Adem�s, los CGI de terceros casi siempre requieren una adaptaci�n previa (customize) para que funcionen. El motivo es que suelen depender de par�metros como rutas de directorios, nombres de archivos, etc. Por suerte, la zona de customizaci�n suele estar clara en la mayor�a de los scripts y consiste simplemente en cambiar valores de ciertas variables.
La versi�n de Perl for Win32 de que disponemos es la de ActiveState y procuramos que est� actualizada.
Tenga en cuenta los siguientes puntos si piensa utilizar scripts en Perl que est�n escritos para Unix:
print "HTTP/1.0 200 OK\n"; print "Content-type: text/html\n\n";
El m�dulo de biblioteca CGI.pm resuelve estos problemas de forma elegante (Vea m�s adelante).
La utilidad FreeWare Blat.exe es un programa que env�a correo electr�nico y que funciona con opciones desde la l�nea de comandos, por lo que es ideal para ser utilizado desde scripts.
El modo de funcionamiento es b�sicamente el siguiente:
Las opciones completas de blat son las siguientes:
Blat <filename> -t <recipient> [optional switches (see below)] Blat -install <server addr> <sender's addr> [<try>[<port>[<profile>]]] [-q] Blat -profile [-delete | "<default>"] [profile1] [profileN] [-q] Blat -h [-q] -install <server addr> <sender's addr> [<try n times> [<port> [<profile>]]] : set's SMTP server, sender, number of tries and port for profile (<try n times> and <port> may be replaced by '-'). <filename> : file with the message body ('-' for console input, end with ^Z) -t <recipient> : recipient list (comma separated) -s <subj> : subject line -f <sender> : overrides the default sender address (must be known to server) -i <addr> : a 'From:' address, not necessarily known to the SMTP server. -c <recipient> : carbon copy recipient list (comma separated) -b <recipient> : blind carbon copy recipient list (comma separated) -o <organization>: Organization field -h : displays this help. -q : supresses *all* output. -noh : prevent X-Mailer header from showing homepage of blat -noh2 : prevent X-Mailer header entirely -p <profile> : send with SMTP server, user and port defined in <profile>. -server <addr> : Specify SMTP server to be used. (optionally, addr:port) -port <port> : port to be used on the server, defaults to SMTP (25) -hostname <hst>: select the hostname used to send the message -mime : MIME Quoted-Printable Content-Transfer-Encoding. -uuencode : Send (binary) file UUEncoded -base64 : Send (binary) file using base64 (binary Mime) -try <n times> : how many time blat should try to send. from '1' to 'INFINITE' -attach <file> : attach binary file to message (may be repeated) -attacht <file>: attach text file to message (may be repeated) Note that if the '-i' option is used, <sender> is included in 'Reply-to:' and 'Sender:' fields in the header of the message.
La URL que mantiene actualmente el programa es http://www.interlog.com/~tcharron/blat.html
Se trata de un m�dulo orientado a objetos de enorme utilidad si uno piensa dedicarse al desarrollo de CGIs en Perl. B�sicamente sustituye con ventaja a la biblioteca cgi-lib.
Como est� disponible en la biblioteca, no es necesario colocar el m�dulo en el servidor. Se puede usar directamente mediante una sentencia use. Lo que s� es imprescindible es estudiar la documentaci�n. Puede encontrar todo lo referente a esta biblioteca en http://stein.cshl.org/WWW/software/CGI/cgi_docs.html.
Ejemplo de uso
use CGI qw(:standard :nph); |
Aqu� se incluye el m�dulo en la forma nph |
$query = new CGI; |
creamos un objeto CGI |
print $query->header; |
Esto env�a las cabeceras adecuadas |
print $query->start_html(); |
Esto env�a los tags HTML hasta el <body> incluido. |
print "<h1>Hola amigos</h1>"; |
Esto se muestra en la p�gina web |
print $query->end_html(); |
Muestra el </body> y el </html>. |
Usted no tiene acceso al c�digo de dichos CGI, aunque s� puede usarlos a trav�s de su URL. En el panel de control encontrar� asistentes gr�ficos que le permiten generar c�modamente el c�digo HTML tanto de contadores como de formularios
Se trata de una adaptaci�n del CGI de dominio p�blico FormMail disponible en http://www.worldwidemart.com/scripts con los siguientes cambios y mejoras:
En la marca FORM del formulario hay que poner lo siguiente:
<form action="http://cgi.adso.net/FormMail.pl">
Los par�metros del formulario se introducen mediante campos ocultos (tags tipo hidden). Los campos ocultos y la informaci�n que suminitran es la siguiente:
Adem�s, si se introduce en el formulario un campo cuyo nombre sea email, los mensajes de correo proceder�n del valor de dicha variable. En otras palabras, si en el formulario sus usuarios han de poner su direcci�n de correo, llame a dicho campo email para que los mensajes que reciba provengan de la direcci�n de correo de los usuarios y se puedan contestar f�cilmente.
La validaci�n se realiza bas�ndose en los nombres de los campos. Para las cuentas bancarias, los nombres deben ser:
Si existen campos con los nombres anteriores, el CGI verificar� la validez algor�tmica de la cuenta y dar� un error si no es correcta.
Para las tarjetas de cr�dito los campos deben ser:
El CGI valida que el n�mero corresponda al tipo de tarjeta especificado y que sea algor�tmicamente correcto.
Si utiliza FrontPage para crear sus p�ginas, puede utilizar el CGI de formularios mediante el cuadro de di�logo de Propiedades de Formulario.
Pulse con el bot�n derecho del rat�n sobre el formulario y escoja la opci�n Propiedades de Formulario. Despu�s elija enviar a secuencia de comandos CGI personalizada. Haga click en opciones y en el campo Accion escriba la direcci�n web del CGI: cgi.adso.net/FormMail.pl . Como m�todo escoja POST.
Con esto el CGI recibir� los datos del formulario, pero no funcionar� a menos que especifique las variables nombradas anteriormente mediante campos ocultos (type=hidden). Vaya a la ventana de c�digo HTML y despu�s de la marca FORM introduzca las marcas correspondientes a los campos ocultos que se menciona en el p�rrafo anterior de uso con HTML.
Naturalmente, la alternativa para los desarrolladores de FrontPage es utilizar las extensiones de FrontPage para enviar los datos del formulario bien a una direcci�n de correo o bien a un archivo.
Puede ver un ejemplo operativo en http:www.adso.net/servicios/sugerencias.htm.
Para cualquier duda no dejen de consultar a [email protected]