• Publicidad

Cambiar un CGI de Linux para Windows

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Cambiar un CGI de Linux para Windows

Notapor paniks » 2006-07-11 14:09 @631

Tengo que decir que hasta hoy nunca habia tratado con un script CGI. No llego ni a novato.
Tengo una web en un servidor Windows. Quería probar un pequeño catálogo que encontré por internet, hecho en flash y asociado al archivo "orderform.cgi".
He consultado a mi servidor y me ha dicho que este CGI es para Linux y que no funcionará bajo Windows.
Mi pregunta es, ¿cómo puedo "traducirlo" para que funcione en mi servidor? (si es que eso fuera posible).
He buscado en el foro y en otros sites y no he encontrado nada parecio o no me he "enterado".

Probalemente a más de uno le de la risa al leer esta pregunta...

Gracias
paniks
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-07-11 13:50 @618

Publicidad

Notapor explorer » 2006-07-11 14:24 @642

La pregunta es seria, no te preocupes...

Generalmente, para pasar un script de Linux a Windows, es necesario hacer unos cambios. El más frecuente es cambiar los '\' de Windows a los de '/' de Linux en los paths de los ficheros y directorios.

Si puedes publicar el cgi, podremos darte más pistas...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor paniks » 2006-07-11 14:50 @660

Pues no es este "orderform".

Aqui esta:
Código: Seleccionar todo
#!/usr/bin/perl

####Most likely you will not have to change the above line. Check with host for path to Perl.

$SENDMAIL = '/usr/sbin/sendmail'; ####Path to sendmail (try this but yours may be different, check with your host)
$to       = '[email protected]'; ####Target email address for orders
$subject  = 'MERCHANT ORDER';     ####E-MAIL subject

print "Content-type: text/html\n\n";
&get_date;
%FORM;
&get_arg;
&send_email;
print "&error=sent the email successfully";
exit();

sub get_date
{
      @days = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
      @months = ('Janurary','February','March','April','May','June','July','August','September','October','November','December');
      ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
      if ($hour < 10) { $hour = "0$hour"; }
      if ($min < 10)    { $min = "0$min"; }
      if ($sec < 10)    { $sec = "0$sec"; }
      if ($year < 10)   { $year = "0$year"; }
    if ($year < 90)   { $cent = "20"; }
   else { $cent = "19"; }
      $date = "$days[$wday], $months[$mon] $mday, $cent$year at $hour\:$min\:$sec";
}

sub get_arg{
   if ($ENV{'REQUEST_METHOD'} eq 'POST') {
            read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
            @pairs = split(/&/, $buffer);
      }else {
         print "error=wrong method";
      exit;
      }
   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);
      $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;
      $value =~ s/<!--(.|\n)*-->//g;
      $FORM{$name} = $value;
   }
}


############### Order format below ... You may want to customize.

sub send_email{
   $from_name=($FORM{'name'} . " <" . $FORM{'email'} . "> ");
   open(MAIL,"|$SENDMAIL -t") || die "error=Can't open $mailprog!\n";
   print MAIL "To: $to\r\n";
      print MAIL "From: $from_name\r\n";
   print MAIL "Reply-To: $from_name\r\n";
   print MAIL "Subject: $subject\r\n\n"; 
   print MAIL "---------------------------------------------------------------\n\n";
   print MAIL "   ORDER SUBMITTED BY: \n";
   print MAIL "   $FORM{'name'} on $date\n\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "MERCHANDISE ORDER\n";
   print MAIL "---------------------------------------------------------------\n\n";
   print MAIL " $FORM{'comments'}\n\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "CARD INFORMATION\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "TYPE : $FORM{'cardtype'}\n";
   print MAIL "NAME ON CARD : $FORM{'cardname'}\n";
   print MAIL "CARD NUMBER : $FORM{'cardnum'}\n";
   print MAIL "CARD EXPIRATION : $FORM{'cardexp'}\n\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "BILLING INFO\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "FIRST NAME : $FORM{'bfirstname'}\n";
   print MAIL "LAST NAME : $FORM{'blastname'}\n";
   print MAIL "EMAIL : $FORM{'bemail'}\n";
   print MAIL "ADDRESS : $FORM{'baddress'}\n";
   print MAIL "CITY : $FORM{'bcity'}\n";
   print MAIL "STATE : $FORM{'bstate'}\n";
   print MAIL "ZIP : $FORM{'bzip'}\n";
   print MAIL "PHONE : $FORM{'bphone'}\n";
   print MAIL "COMMENTS : $FORM{'bcomments'}\n\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "SHIPPING INFO\n";
   print MAIL "---------------------------------------------------------------\n";
   print MAIL "NAME : $FORM{'sname'}\n";
   print MAIL "ADDRESS : $FORM{'saddress'}\n";
   print MAIL "CITY : $FORM{'scity'}\n";
   print MAIL "STATE : $FORM{'sstate'}\n";
   print MAIL "ZIP : $FORM{'szip'}\n\n";
   print MAIL "---------------------------------------------------------------\n\n";
   print MAIL "<REMOTE HOST>     $ENV{'REMOTE_HOST'}\n";
   print MAIL "<REMOTE ADDRESS>  $ENV{'REMOTE_ADDR'}\n";
   print MAIL "<USER AGENT>      $ENV{'HTTP_USER_AGENT'}\r\n";
   close(MAIL);
}
paniks
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-07-11 13:50 @618

Notapor explorer » 2006-07-11 14:55 @663

Respuesta rápida: el problema es sendmail... seguro que en Windows no lo tienen instalado... pero hay otras formas...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor paniks » 2006-07-11 14:59 @666

Talvez tenga que preuntar al servidor que alternativa tengo a sendmail...?
paniks
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-07-11 13:50 @618

Notapor explorer » 2006-07-11 15:04 @669

En este foro hay algunos hilos comentando el mismo problema...

Yo les preguntaría primero qué Perl tienen instalado y qué módulos relacionados con el envío de correo tienen. Si no tienen ninguno aún así se puede hacer, pero con un poco de trabajo.

Pregúntales si pueden instalar los módulos que necesites...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2006-07-11 15:06 @671

Estoy mirando el script... porque me parece que se puede hacer algo interesante...

Lo importante es que les preguntes si pueden instalarte alguno de los módulos de correo, por ejemplo Mail::Sendmail.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor paniks » 2006-07-11 15:20 @680

Siguiendo un link de vuestra seccion herramientas he encontrado ente enlace:

http://www.microsoft.com/technet/archiv ... x?mfr=true

Aqui hay un ejemplo de una alternativa a sendmail:

<?
$message = new COM("CDO.Message");
$message->To = '[email protected]';
$message->From = '[email protected]';
$message->Subject = "This is a subject line";
$message->HTMLBody = "<html><body>This is <b>the</b> body!</body></html>";
$message->AddAttachment('http://www.ActiveState.com');
$message->Send();
?>

Intentare ver como puedo adaptar este ejemplo al "orderfom.cgi"...
paniks
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-07-11 13:50 @618

Notapor explorer » 2006-07-11 16:06 @712

'Eso' no es Perl... es PHP... :-)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor paniks » 2006-07-11 16:22 @724

creo que por hoy voy a dejarlo...
Mañana sera otro dia, y les consultare al servidor si pueden instalarme el modulo que has comentado Mail::Sendmail.

muchas gracias por echarme una mano

Hasta mañana
paniks
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-07-11 13:50 @618

Siguiente

Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados