Tengo problemas con CGI
Publicado: 2006-07-13 13:55 @621
¡Qué tal comó están todos! Antes que nada quiero decirles que soy nuevo en este lenguaje(Perl) y la verdad tengo mucho interés en aprender más, he leído algo de este lenguaje y me atreví hacer un cgi claro tomando de ejemplo uno que ya estaba hecho, tengo una página hospedada en un servidor, un dominio .com.mx y el servidor soporta php y perl para los cgi, sé cuales son las rutas y tengo los permisos 755 en la carpeta y en el archivo .cgi, pero a la hora de hacer una prueba y enviar el form me sale el siguiente error "Puede que la página solicitada ya no exista haya cambiado de nombre o no esté disponible temporalmente" http 404 y por mas que he intentado solucionar el problema no he podido a lo mejor es un error pequeño pero debido a mi inexperiencia pues no lo he encontrado. Este es el cgi del que les comento con el código de la página HTML
No sé qué parte esté mal, pero les agradecería la ayuda, ojalá y quede resuelto.
- Código: Seleccionar todo
<FORM action="nombre.cgi" method=post>
Nombre: <input type=text name=nombre size=30><p>
Apellidos: <input type=text name=apellido size=50s><p>
Email: <input type=text name=email size=20><p>
Estamento: <select name=estamento>
<option value=pas>PAS
<option value=pdi>PDI
</select>
<p>
Introduzca sus comentarios:
<p>
<textarea name=comentar rows=5 cols=80>
</textarea>
<input type=submit value="Enviar">
</form>
- Código: Seleccionar todo
#!/usr/bin/perl -- -*-perl-*-
# Definición del programa para enviar correo
$progmail = '/usr/sbin/sendmail';
# Usuario al que se enviarán los mensajes.
$destino = '[email protected]';
# Indica que se trata de un documento HTML
print "Content-type: text/html\n\n";
# Obtiene la entrada
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Divide las variables entre nombre y valor.
@pairs = split(/&/, $buffer);
# Optiene todas las variables y sus valores
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;
}
# Ahora enviamos el mail al $destino
open (SALIDA, "|$progmail $destino") || die "No puedo abrir $progmail!\n";
print SALIDA "Reply-to: $FORM{'email'} ($FORM{'nombre'} $FORM{'apellidos'})\n";
print SALIDA "Subject: Comentarios al formulario de prueba ($FORM{'nombre'} $FORM{'apellidos'})\n\n";
print SALIDA "$FORM{'nombre'} $FORM{'apellidos'} del $FORM{'estamento'}envio \n";
print SALIDA "El siguiente comentario::\n\n";
print SALIDA "------------------------------------------------------------\n";
print SALIDA "$FORM{'comentar'}";
print SALIDA "\n------------------------------------------------------------\n";
close (SALIDA);
No sé qué parte esté mal, pero les agradecería la ayuda, ojalá y quede resuelto.