Necesito un poco (bastante) ayuda.
Tengo q poner un cgi para mandar info a traves de un formulario normalito en un servidor en el cual no saben ni ellos ( o no lo quieren decir) si es unix o windows. Vamos q lo unico q se es q tiene soporte para cgi y punto. La empresa en cuestion a la q estoy renovando la web se niega a cambiar de host, así q como el cliente siempre tiene razón, tengo q encontrar otra solución.
Básicamente: se q un cgi no funciona igual en plataforma windows q en unix. Hay alguna forma de saber q plataforma es la del host en cuention???
Una vez sabido, en que carpeta debo instalar el cgi?? en /cgi-bin/ del directorio raiz del espacio web q tiene esta empresa contratado???
Por cierto pongo aquí el codigo cgi q he voy a poner por si a alguien le puede servir, en principio es gratuito, más q nada por si hubiera que hacer modificacion segun plataforma.
Código:
Gracias y...A ver si hay suerte#!/usr/bin/perl ############################################################################## # Cliff's Form Mailer Version 1.0 # # Copyright 1998 Shaven Ferret Productions # # Created 6/4/98 # # Available at http://www.shavenferret.com/scripts # ############################################################################## # COPYRIGHT NOTICE # # Copyright 1998 Shaven Ferret Productions All Rights Reserved. # # # # This script can be used\modified free of charge as long as you don't # # change this header thing, or the part that gives me credit for writing # # script in the e-mail. If you really need to remove this part, go to # # http://www.shavenferret.com/scripts/register.shtml . By using this script # # you agree to indemnifyme from any liability that might arise from its use. # # In simple English, if this script somehow makes your computer run amuck # # and kill the pope, it's not my fault. # # # # Redistributing\selling the code for this program without prior written # # consent is expressly forbidden. # ############################################################################## # 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','subject'); # Enter your e-mail address. Be sure to put a \ in front of the @. # ([email protected] becomes user\@domain.com) $youremail = "yourname\@yourdomain.com"; ############################################################################## # Congratulations! You've finished defining the variables. If you want to, # # you can continue screwing with the script, but it isn't necessary. # ############################################################################## # 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 "Content-type: text/html\n\n"; print "<html><head><title>Missing Information</title></head>\n"; print "<body><h1>Missing Information</h1><br>\n"; print "I'm sorry, but it would appear that you've forgotten to\n"; print "fill out the $check field. Please click\n"; print "back and try again.\n"; print "</body></html>\n"; exit; } } # Check the senders email if ($FORM{'email'}) { unless ($FORM{'email'} =~ /\w+@\w+.\w+/) { print "Content-type: text/html\n\n"; print "<html><head><title>Bad E-mail</title></head>\n"; print "<body><h1>Bad E-mail</h1><br>The e-mail address that you've\n"; print "entered, $FORM{'email'}, is invalid. Please click back and\n"; print "try again.\n"; exit; } } open (MAIL,"|$mailprogram"); print MAIL "To: $youremail\n"; print MAIL "From: $FORM{'email'}\n"; print MAIL "Subject: $FORM{'subject'}\n"; print MAIL "Hello. The following information has been submitted:\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 "email" || $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'} -- Autoresponse\n"; foreach $line (@response) { print MAIL "$line"; } print MAIL "The person you are communicating with is using Cliff's\n"; print MAIL "Form Mailer Script. If you would like to add this script\n"; print MAIL "to your web site, you can find it and many more perl scripts at\n"; print MAIL "http://www.shavenferret.com/scripts\n"; close MAIL; } print "Content-type: text/html\n\n"; print "<html><head><title>Thank you!</title></head>\n"; print "<body><h1>Thank you!</h1><br>Thanks for your input! \n"; if ($FORM{'response'} && $FORM{'email'}) { print "You should receive an autoresponse shortly.<p>\n"; } print "Please click back.\n";
Salu2
Lantrax