En este tutorial vamos a ver como recopilar información enviada a nuestros CGI's ya sea por el método de POST o de GET.
En este tutorial no vamos a ver nada del código HTML que se debe de usar en las formas ni nada por el estilo, pues es un sitio de perl no de HTML, sin embargo si puedo recomendar un tutorial que me encontré por ahí que habla acerca de como crear formas en HTML. http://www.cs.buap.mx/~freddy/taller/html.html/
GET
Con este método el query(es el nombre con el que se denomina la información enviada al CGI) viene en la variable de entorno llamada QUERY_STRING.
Todas las variables vienen separadas por el símbolo de "&" y se sabe que empieza el query pues siempre inician por el símbolo de "?".
Por ejemplo si tenemos un CGI llamado "email.cgi" y quisieramos enviar 2 variables, email y nombre, construiriamos el URL de la siguiente manera:
http://www.misitio.com/cgi-bin/email.cgi?email=email@dealquien.com&nombre=MiNombreAhí vemos claramente como se identifican las variables y sus valores. Este método es muy usado por los buscadores de páginas como Google, Yahoo, etc.
NOTA: En el query los símbolos especiales son codificados automáticamente, de esta manera se evitan confusiones.Ya sabemos como se ve un query envíado por GET, ahora veamos como leerlo con el CGI y meterlo dentro de un hash al que le vamos a llamar "%Variables":
my(%Variables); #Iniciamos el hash#Leemos el query enviado
my $buffer = $ENV{'QUERY_STRING'};
#Dividimos cada variable
my @pairs = split(/&/, $buffer);
foreach my $pair (@pairs) {
#Separamos la variable de su valor
my ($name, $value) = split(/=/, $pair);
#Decodificamos
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
#Asignamos una nueva llave al valor
$Variables{$name} = $value;
}
Así que si ponemos este código, y seguimos con el primer ejemplo que dí acerca del query (variables de email y nombre), podríamos desplegar las variables llamando a las llaves:
print "$Variables{'email'}n";Recuerda que la llave se va a llamar exactamente igual al nombre de la variable. En caso de que dos variables se llamen igual, el valor que se utiliza es el último.
Usuarios que han visto este tema también han visto...
- Rotación de Banners
- Redactar páginas completas con CGI
- Lista de variables en CGI.
- SFELinkAdd
- Primeros Pasos en CGI
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.