Pasar parámetros POST y GET - CGI de Perl
Interesante: Vídeo Tutorial del CGI de Perl
Interesante: Vídeo Tutorial del lenguaje Perl
Bien, ya hemos avanzado algo respecto a como utilizar CGI, pero uno de los pilares fundamentales de este sistema es la de recibir y
enviar información.
En este apartado del tutorial vamos a ver como enviar parámetros GET y POST y capturar esos valores para realizar determinadas
acciones. Para ello es necesario tener ciertos conocimientos de HTML y saber utilizar formularios, si algunas vez has programado
con PHP o ASP no te será difícil comprenderlo.
El módulo CGI contiene un método llamado param() con el cual se puede capturar el valor del parámetro enviado.
Para el siguiente ejemplo vamos a crear un archivo llamado sumar.html en la carpeta tutorial-cgi, en el cual incluiremos un formulario
que podrá ser enviado a través del método GET y como verás al final de este capítulo también a través del método POST, este formulario contendrá dos campos desde los cuales podremos realizar una suma. Enviaremos
los datos a un script llamado sumar.cgi que nos regresará la suma de ambos números.
Crea una archivo llamado sumar.html y guárdalo en la carpeta tutorial-cgi ...
<!DOCTYPE HTML> <html> <head> <title>SUMAR</title> </head> <body> <center> <h1>Sumar</h1> <form method="get" action="cgi-bin/sumar.cgi"> Sumar: <input type="text" name="numero1"> + <input type="text" name="numero2"> <input type="submit" value="SUMAR"> </form> </center> </body> </html>
Ahora ejecuta en el navegador la siguiente ruta ... http://localhost/tutorial-cgi/sumar.html
Ahora es el momento de crear el script sumar.cgi, así que crea el archivo y guárdalo como siempre en la
carpeta cgi-bin ...
#!"C:\strawberry\perl\bin\perl.exe" use strict; use CGI; #Objeto CGI my $cgi = new CGI; #Obtener el valor del primer campo my $numero_1 = $cgi->param("numero1"); #Obtener el valor del segundo campo my $numero_2 = $cgi->param("numero2"); #Suma total my $total = $numero_1 + $numero_2; #Filtrar los valores de los campos para que sólo acepte números #Esto ahora no es importante ya que es una simple demo #Cuando hagas consultas a una base de datos es imprescindible if ($numero_1 !~ /^[0-9]+$/ or $numero_2 !~ /^[0-9]+$/) { $total = "El valor del campo tiene que ser un numero"; } #Cabecera HTML my $cabecera = $cgi->header(-type => "text/html"); print $cabecera; #Mostrar en el navegador la suma total print "<h1>La suma de ambos números es ... " . $total . "</h1>"; print "<a href='../sumar.html'>Regresar al formulario</a>";
Cuando hayas guardado el script sumar.cgi es hora de hacer la prueba de sumar dos números ...
Si envío el formulario ocurre lo siguiente ...
Ok, como puedes ver ha sumado ambos números, en el script se comenta algo que es necesario tener en cuenta desde un principio, y
es la seguridad. Filtrar los datos, porque en algún momento tendrás que realizar consultas a una base de datos y si los datos no son
filtrados adecuadamente puedes tener graves problemas de seguridad.
Prueba a incluir en los campos otro tipo de datos que no sean números ...
Si envío el formulario ocurre lo siguiente ...
También quiero que quede claro que puedes recibir tanto parámetros enviados a través del método GET,
como parámetros a través del método POST, es decir, al método param no le influye el tipo de método utilizado. Para que lo pruebes in situ, sólo haz un pequeño cambio en el
atributo method del formulario y cambia get por post y vuelve a enviarlo, verás que todo
funciona bien, lo único que cambia es el método.
No hay comentarios:
Publicar un comentario