Foros del Web » Programación para mayores de 30 ;) » Programación General »

Formulario + Adjunto

Estas en el tema de Formulario + Adjunto en el foro de Programación General en Foros del Web. Estimados Necesito un CGI que permita al usuario mandar un formulario y adjuntarle un archivo. Sería ideal que se pudiera determinar el tamaño máximo del ...
  #1 (permalink)  
Antiguo 14/08/2003, 09:53
 
Fecha de Ingreso: agosto-2003
Mensajes: 1
Antigüedad: 20 años, 8 meses
Puntos: 0
Exclamación Formulario + Adjunto

Estimados

Necesito un CGI que permita al usuario mandar un formulario y adjuntarle un archivo. Sería ideal que se pudiera determinar el tamaño máximo del archivo a adjuntar.

En estos momentos tengo un CGI que utilizo para procesar los formularios, permite la validación de datos (Mail u otros requeridos) y envia una respuesta automática al usuario si es que su mensaje ha sido enviado. la pregunta del millón es

¿puedo modificar de alguna manera para que este mismo CGI me sirva para enviar datos adjuntos?

Cuandoi mando el formulario solo me llega la "dirección" del archivo adjunto

El CGI que ocupo es:


# Enter the location of sendmail.
$mailprogram = "/usr/lib/sendmail -t";

# Enter the fields that are required. They should each be in quotes and
# separated by a comma. If no fields are required, change the next line
# to @required = ();
@required = ('email');

# Enter your e-mail address. Be sure to put a \ in front of the @.
# ([email protected] becomes user\@domain.com)
$youremail = "\@";


# Put the posted data into variables

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

# Check for all required fields

foreach $check(@required) {
unless ($FORM{$check}) {
print "Location: http://www.algo.cl/resp_incorrecta.htm\n\n";
exit;
}
}

# Check the senders email

if ($FORM{'email'}) {
unless ($FORM{'email'} =~ /\w+@\w+.\w+/) {
print "Location: http://www.algo.cl/resp_incorrecta.htm\n\n";
exit;
}
}

open (MAIL,"|$mailprogram");
print MAIL "To: $youremail\n";
print MAIL "From: $FORM{'email'}\n";
print MAIL "Subject: $FORM{'subject'}\n";
print MAIL "Sres. X: la siguiente información les ha sido enviada:\n\n";
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
unless ($name eq "response" || $name eq "subject") {
print MAIL "$name: $value\n";
}
}
close MAIL;

if ($FORM{'response'} && $FORM{'email'}) {
open (RESPONSE, $FORM{'response'});
@response = <RESPONSE>;
close(RESPONSE);
open (MAIL,"|$mailprogram");
print MAIL "To: $FORM{'email'}\n";
print MAIL "From: $youremail\n";
print MAIL "Subject: $FORM{'subject'} -- Gracias por Contactarnos --\n";
foreach $line (@response) {
print MAIL "$line";
}
print MAIL "Gracias por contactarnos.\n";
print MAIL "\n";
close MAIL;
}

# Para un redireccionamiento cambir las siguientes lineas ....

#print "Content-type: text/html\n\n";
#print "<html><head><title>Gracias!</title></head>\n";
#print "<body><h1>Gracias!</h1><br>Su Información ha sido enviada! \n";
#if ($FORM{'response'} && $FORM{'email'}) {
# print "Su informaión está siendo procesada.<p>\n";
#}
#print "Please click back.\n";


# por las siguiente linea (no debe faltar el \n\n!! )

print "Location: http://www.algo.cl/resp_correcta.htm\n\n";
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.