Formulario en cgi

¿salutos tienes una rutina o código que me permita enviar un formulario utilizando cgi?

2 Respuestas

Respuesta
1
Te paso dos subrutinas, en una se interpreta si el formulario se ha enviado con el method "get" o el "post", la segunda interpreta el resultado de la primera devolviendo un hash de la forma: clave -> valor. Las llamadas a las subrutinas son:
$incoming = &cgi_receive(STDIN, $ENV{'CONTENT_LENGTH'});
%FORM = &cgi_decode($incoming);
y las subrutinas:
sub cgi_receive { #header.pl
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read($_[0], $incoming, $_[1]);
}
else {
$incoming = $ENV{'QUERY_STRING'};
}
$incoming = &replaceSustitucionesAcentos($incoming);
return $incoming;
}
#-------------------------------------------- cgi_decode
sub cgi_decode { #header.pl
@pairs = split(/&/, $_[0]);
foreach (@pairs) {
($name, $value) = split(/=/, $_);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/gie;
$value =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/gie;
#### reemplazamos caracteres especiales
#$value =~ s/;/$$/g; #marcamos posición de los ;
$value =~ s/&(\S{1,6})$$/&\1;/g; #buscamos c. especiales
$value =~ s/$$/ /g; #borramos los ; sobrantes
$value =~ s/\|/ /g;
$value =~ s/^!/ /g;
#### saltamos los campos con valor nulo.
next if ($value eq "");
#### Check for "assign-dynamic" field names
#### Mainly for on-the-fly input names, especially checkboxes
if ($name =~ /^assign-dynamic/) {
$name = $value;
$value = "on";
}
#### Allow for multiple values of a single name
$FORM{$name} .= ", " if ($FORM{$name});
$FORM{$name} .= $value;
}
return %FORM;
}
Si tienes algún problema en visializarlas o entenderlas emíliame a: [email protected]
Respuesta
1
Para que puedas poner un formulario y que funcione el CGI debes tener en cuenta que el servidor debe tener instalado el PERL y que sea compatible con el CGI que vas a colocar; debes de poder manejar FTP para poder darle los permisos necesarios... Es necesario que sepas manejar este archivo de lo contrario no funcionará...
Te puedo recomendar un hosting gratuito que te permite hacer formularios pues tiene su CGI flexible y te llega al e mail que suscribas; aquí no necesitas hacer nada pues el CGI ya existe:
http://www.comunidad.vlex.com
Y ya si quieres contratar un servidor que te permita y te de CGI's y formularios, tu e [email protected] entonces puedes contratar conmigo porque soy miembro de una empresa llamada SysWebs.com (sección México). Tenemos planes muy económicos que te permitirán contar con muchas herramientas para que no dependas de nosotros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas