HTMLpointHTMLpoint HTMLpoint.com


 REQUEST_METHOD: get



Imaginemos un form escrito de la siguiente forma:

<form action="http://vuestroservidor.it/cgi-bin/enviar.cgi" method="GET">
Introduzca aquí el texto: <input type= "text" name= "ejemplo_de_texto"size=30><p>
</form>
que, interpretado por el navegador, resulta como
Introduzca aquí el texto: 

Fijaos que en este ejemplo no está el botón 'Enviar' o 'Click me' (en realidad el nombre no tiene importancia ya que podemos elegirlo nosotros a nuestro antojo. Lo único es que si ponemos "Antonio" difícilmente se entiende), sino una pequeña ventana en la que introducir el texto. Pues bien, a través de GET tecleando el botón Enviar se mandan las informaciones al CGI que las interpretará. Por lo tanto, sin introducir otros form, bastará con introducir un texto durante la construcción de la página que indique que hay que pulsar enviar para enviar los datos. Normalmente, los argumentos de GET se pasan al CGI como

http://vuestroservidor.it/cgi-bin/script.cgi?argumento
Los datos que salen de este CGI serán del tipo ejemplo_de_texto=argumento.

Ahora volvamos al puro Perl para ver cómo hacer que la cadena sea legible, sin '=' y '&' (que de momento no está) con espacios y apartes. Esto se hace para ver dos diferentes campos y por eso utilizamos la función Perl "spilt()":

@campi = split(/\&/,$ENV{'QUERY_STRING'});
        foreach $valor (@campos) {
                ($nombre_variable, $dato) = split(/=/,$valor);
         print "$nombre_variable = $dato\n";
}
Este simple script, por lo tanto, divide los dos campos y da como resultado:
nombre = mario
apellido(s) = rossi
Mucho más fácil como formato¿verdad?
Además, si queremos, podemos implementar este script en un CGI, de forma que pueda crear una página HTML. A estas alturas habríais tenido que aprender la técnica para hacerlo, por lo tanto, no vamos a repetir los pasos.

Antes de acabar con GET, una observación importante:

GET no es un método totalmente seguro para enviar los datos porque, como los datos pasan como parte de las URL, se quedan en los log del sistema y, en teoría, los pueden leer todos los que tengan acceso al sistema. Por lo tanto NO utilizéis nunca GET para enviar o recibir (recibir a través de GET es peligroso para vuestro posible cliente, que como es fácil de comprender, pretende que los datos que pasan al servidor estén protegidos) contraseña, número de Visa o cosas parecidas. Para estos tipos de datos sería mejor utilizar POST.

Hay que acudir a éste cuando haga falta. Sobre todo para que el método GET no parezca inútil añadimos que se utiliza para las búsquedas en los database.

Por ejemplo, un script relacionado con el del que acabamos de hablar, que interpreta las informaciones pasadas por GET podría ser algo parecido a:

#!/usr/bin/perl

print "Content-type:text/html\n\n";
print "<html><head><title>Devolvereltexto</title></head>\n";
print"<body>\n";

print "$ENV{'QUERY_STRING'}\n";

print"</body></html>";


Si, por ejemplo, habéis introducido "Hola a todo el mundo" el CGI os devolverá: 'ejemplo_de_texto=Hola+a+todo+el+mundo', es decir, pondrá a la izquierda el nombre del form y a la derecha el texto que habéis escrito.
Invocar el script enviar.cgi averiguadlo.

Además de la posibilidad de enviar una sola cadena a través de GET, se pueden utilizar incluso dos o más cadenas, como resulta evidente en el código del sucesivo form:

     <form action="http://vuestroservidor.it/cgi-bin/enviar.cgi" method="GET">
     Nome: <input type= "text" name= "nombre"size=30><p>
     Apellidos: <input type= "text" name= "apellidos"size=30><p>
     </form>

La cadena QUERY_STRING, por lo tanto, es:

$ENV{'QUERY_STRING'} = nombre=mario&apellido(s)=rossi
si habéis introduciso 'mario rossi' en el form. Como resultado aprarecerá el símbolo "&" y ya sabéis como quitarlo 


  Volver al inicio de la página