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

Moviendo el CGI de un servidor a otro

Estas en el tema de Moviendo el CGI de un servidor a otro en el foro de Programación General en Foros del Web. Buenos dias a todos. Primero de todo aclarar que soy programador, pero en otros lenguages. Nunca he escrito una sola linea de Perl. Tengo el ...
  #1 (permalink)  
Antiguo 13/06/2006, 09:21
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Moviendo el CGI de un servidor a otro

Buenos dias a todos.
Primero de todo aclarar que soy programador, pero en otros lenguages. Nunca he escrito una sola linea de Perl.
Tengo el siguiente problema.
Una web integramente hecha en flash, contiene un formulario, también en flash, para enviar un correo de contacto. El flash envia el correo a través de un CGI escrito en Perl.
Bien, el problema es que al mover el sitio hacia otro servidor, ese formulario me da error de envío. Por lo visto, tiene programado que si ocurre algun error, muestre la info para mandar el correo a través de un gestor de correo particular. Típico link de tipo "mailto:blablabla".
Bien, espero haberme explicado bien.
Sabría alguien decirme si puedo hacerlo funcionar en el nuevo servidor de alguna forma? O lo que tengo que canviar está en el codigo flash, más que en el CGI...
Gracias por su generosa ayuda.
Saludos cordiales

P.S.: En el siguiente post les dejo el código, que en este no me cabe.
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 13/06/2006, 09:22
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Código:
#!/usr/bin/perl

use CGI;

# ----------------------------- define variables -----------------------------

# @restrictTo is an array containing refering addresses to which you
# wish to grant access to your script.  If it contains a single value of
# 'all' then any refering address can access your script.

# uncomment the next line to grant access to only restricted addresses
#@restrictTo = ('envatech.net');

# comment the next line if you restrict access.
@restrictTo = ('all');

# $toEmail is the default email you wish this script to send all
# emails to.  uncomment the line below to do this.
$toEmail = 'info\@envatech.net';

# $sendMailProg is the location of the mail send program on your server.
# the default setting will work for most Unix servers.

$sendMailProg = '/var/qmail/bin/sendmail';

# ------------------------ end define variables ----------------------------------

# -------------------------- call subroutines ------------------------------------

# step 1: validate the refering address
&validateReferer;

#step 2: get data from form post
&getData;

#step 3: check the output request type
&checkOutputRequest;

#step 4: check required fields
&checkRequired;

#step 5: send email
&sendEmail;

# ----------------------- end call subroutines -----------------------------------

# --------------------------- subroutines ----------------------------------------

sub validateReferer
{
    local $isValid = 0;

    # checks to make sure that the HTTP_REFERER has been passed
    if ($ENV{'HTTP_REFERER'}) 
    {
        # compares each address in the @restrictTo array to the refering address
        # if it finds a match, it flags $isValid to true and breaks out of the 
        # foreach loop
        foreach $address (@restrictTo)
        {
            if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$address|i || $address eq 'all') 
            {
                $isValid = 1;
                last;
            }
        }
    }
    # if HTTP_REFERER has not been passed, it checks to see if the value of the first 
    # element of the restrictTo array is 'all', in which case all refering addresses
    # are granted access, so the $isValid is flagged true.
    elsif ($restrictTo[0] eq 'all')
    {
        $isValid = 1;
    }
    
    # if the refering address is not a valid on, output an error message.
    if ($isValid != 1)
    {
        &output('invalidAddress');
    }
}

sub getData
{
    if ($ENV{'REQUEST_METHOD'} eq 'GET') 
    {
        # split the query_string into an array that holds the name/value pairs.
        @variables = split(/&/, $ENV{'QUERY_STRING'});
    }
    elsif ($ENV{'REQUEST_METHOD'} eq 'POST') 
    {
        read(STDIN, $fromPost, $ENV{'CONTENT_LENGTH'});
        
        # split the previously assigned value of $fromPost into an array that
        # holds the name/value pairs. 
        @variables = split(/&/, $fromPost);
    }
    
    # if no request method has been passed (no form information) then output
    # an error message.
    else 
    {
        &error('noRequestMethod');
    }

    # break each name/value pair apart, convert them from the URLenceded format,
    # and place them into an associative array.
    $k = 0;
    foreach $variable (@variables) 
    {

        local($varName, $varValue) = split(/=/, $variable);
 
        $varName =~ tr/+/ /;
        $varName =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

        $varValue =~ tr/+/ /;
        $varValue =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

        $varValue =~ s/<!--(.|\n)*-->//g;

        $FIELDS{$varName} = $varValue;

        $order[$k] = $varName;
 $k = $k + 1;
    }
    
}

sub checkOutputRequest
{
    $outputEnvVars = 0;
    if (defined($FIELDS{'envVars'}))
    {
        if ($FIELDS{'envVars'} eq 'yes')
        {
            $outputEnvVars = 1;
        }
        if ($FIELDS{'envVars'} eq  'only')
        {
            &output('envVars');
        }
    }
}

sub checkRequired
{
    # checks to see if a formfield called 'required' has been passed
    # if not, define @required to be empty.  otherwise, define @required
    # to be the elements from the comma-delimited list passed from the form.
    if (!defined($FIELDS{'required'}))
    {
        @required = ();
    }
    else
    {
        @required = split(/,/,$FIELDS{'required'}); 
    }

    # in order to send an email it is necessary to have an address to
    # which to send.  if no value was passed and a default has not been
    # specified within the script, then add to the array of missing
    # values.
    if (!defined($FIELDS{'to'}))
    {
        if (!defined($toEmail))
        {
            push(@missing, 'to');
        }
    }
    # if an email address has been passed frmo the form, then make sure that it
    # is a valid format for an email address.  otherwise, output an error message.
    elsif ($FIELDS{'to'} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/ || $FIELDS{'to'} !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/)
    {
        &output('badEmail');
    }

    # check to make sure each required formfield has been passed.
    foreach $require (@required)
    {
        if (!defined($FIELDS{$require}))
        {
            push(@missing, $require);
        }
    }
  
    # if any missing formfields were detected, output the error message.
    if (defined(@missing))
    {
        &output('missingRequired');
    }
}

sub sendEmail
{

    # begin sending the mail.
    open(MAILPROG, "|$sendMailProg -t");
    if (defined($FIELDS{'to'}))
    { 
        print MAILPROG "To: $FIELDS{'to'}\n";
    }
    elsif (defined($toEmail))
    {
        print MAILPROG "To: $toEmail\n";
    }
    else
    {
        &output('badEmail');
    }

    if (defined($FIELDS{'from'}))
    {
        print MAILPROG "From: $FIELDS{'from'}\n";
    }
    else
    {
        print MAILPROG "From: <unknown>\n";
    }

    if (defined($FIELDS{'subject'}))
    {
        print MAILPROG "Subject: $FIELDS{'subject'}\n\n";
    }
    else
    {
        print MAILPROG "Subject: <none>\n\n";
    }

    # print each variable name and value to the body of the email.
    foreach $index (@order)
    #foreach $member (keys %FIELDS)
    {
        if ($index ne 'to' && $index ne 'from' && $index ne 'subject')
    #    if ($member ne 'to' && $member ne 'from' && $member ne 'subject')
        {
            print MAILPROG "$index:\n\n$FIELDS{$index}\n\n";
    #        print MAILPROG "$member:\n\n$FIELDS{$member}\n\n";
        }
    }
    
    # sends email. 
    print MAILPROG ".";

    close (MAILPROG);



    # output the success of the send to the user.
    &output('sentEmail');

}
 

sub output
{
    # create a local variable to hold the value of the paramaters
    # passed to the subroutine.
    local ($outputType) = @_;

    if ($outputType eq 'invalidAddress')
    {
        print "Content-type: text/plain\n\n";
        print "success=0&error=invalidAddress";
        exit;
    }

    elsif ($outputType eq 'noRequestMethod')
    {
        print "Content-type: text/plain\n\n";
        print "success=0&error=noRequestMethod";
        exit;
    }

    elsif ($outputType eq 'missingRequired')
    {
        # create local variable to hold length of array for 
        # missing formfields.
        local $howManyMissing = scalar(@missing);
        print "Content-type: text/plain\n\n";
        print "success=0&error=missingRequired&missing=";
        
        # print a comma-delimited list of the missing formfields.
        for ($i=0; $i< $howManyMissing-1; $i++) 
        {
                print "$missing[$i],";
        }
        print "$missing[$howManyMissing-1]";
        exit;
    }

    elsif ($outputType eq 'badEmail')
    {
        print "Content-type: text/plain\n\n";
        print "success=0&error=badEmail";
        exit;
    }

    elsif ($outputType eq 'envVars')
    {
        print "Content-type: text/plain\n\n";
        print &envVars;
        print "&timeDate=";
        print &makeDate;
        exit;
    }

    elsif ($outputType eq 'sentEmail')
    {
        print "Content-type: text/plain\n\n";
        print "success=1&timeDate=";
        print &makeDate;
        exit;
    }
}

sub makeDate {

    @days   = ('Sunday','Monday','Tuesday','Wednesday',
               'Thursday','Friday','Saturday');
    @months = ('January','February','March','April','May','June','July',
          'August','September','October','November','December');

    ($sec,$min,$hour,$dayOfMonth,$month,$year,$dayOfWeek) = (localtime(time))[0,1,2,3,4,5,6];
    $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
    $year += 1900;

    $date = "$days[$dayOfWeek] $dayOfMonth $months[$month] $year $time";
    $date = CGI::escape($date);

    return $date;
}


sub envVars
{
    local $remoteHost = $ENV{'REMOTE_HOST'};
    local $httpReferer = $ENV{'HTTP_REFERER'};
    local $httpUserAgent = $ENV{'HTTP_USER_AGENT'};

    $remoteHost = CGI::escape($remoteHost);
    $httpReferer = CGI::escape($httpReferer);
    $httpUserAgent = CGI::escape($httpUserAgent);

    $envVars = "REMOTE_HOST=$remoteHost&HTTP_REFERER=$httpReferer&HTTP_USER_AGENT=$httpUserAgent";
    return $envVars;
}
# ----------------------------- end subroutines ------------------------------------
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 13/06/2006, 10:54
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
El dominio sigue siendo envatech.net ?
La dirección del intérprete de perl sigue siendo #!/usr/bin/perl ? ( pregunta al soporte técnico)
La dirección del sendmail sigue siendo /var/qmail/bin/sendmail ? (Pregunta al soporte técnico)

Saludos
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 14/06/2006, 01:56
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
mmm... de momento no es envatech.net, ya que estoy en un dominio de pruebas para ver si todo va correcto, antes de cambiarlo definitivamente. De hecho lo unico que falla es ese envio del correo.
A las malas, si veo que va a dar problemas cambiaré el sistema y haré que envie el correo mediante Asp. Pero claro, todo eso será si consigo los FLA, que vete a saber si será posible.
Por eso pido la forma de hacerlo cambiando algo del CGI?
MonoSwim, respecto a las dos preguntas que haces no me saben responder donde está el interprete ni el sendmail.
Sabes si puedo mirarlo yo?
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 14/06/2006, 03:51
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
@restrictTo debe contener el dominio desde donde se van a enviar los correos. Ahora lo tienes puesto a 'all', que está bien MIENTRAS hagas pruebas. Luego pones el definitivo.

En caso de error, el programa devuelve un fichero de texto, como se vé en los prints que hay en la función output. No manda un correo.

$toEmail guarda la dirección por defecto donde enviar los correos, si no se ha indicado ninguna en la página web. PERO aquí veo un problema. Actualmente la línea es
Código:
$toEmail = 'info\@envatech.net';
pero debería ser esto:
Código:
$toEmail = '[email protected]';
o esto:
Código:
$toEmail = "info\@envatech.net";
En Perl es muy importante el tema de las comillas. Si se ponen comillas dobles, Perl intentará interpretar el contenido (las variables que haya dentro). Como la '@' puede indicar un posible comienzo de variable -y en nuestro caso NO es así porque forma parte de un correo electrónico-, debemos 'escaparla' poniendo una '\' delante de ella. Si se ponen comillas simples, Perl interpretará el contenido entrecomillado de forma literal, por lo que la '\' sobraba. De hecho, es posible que este haya sido el fallo, porque a la hora de enviar el correo electrónico, lo habrá hecho hacia info\@envatech.net.

Finalmente, $sendMailProg = '/var/qmail/bin/sendmail'; indico dónde está el sendmail, que es el programa que, en el servidor, mandará el correo. Si no sabes si está o dónde está instalado, prueba con $sendMailProg = 'sendmail';

A ver si con eso te funciona. Si no, pregunta al administrador del servidor si tiene instalado el sendmail. Si el administrador no sabe responder a esa pregunta, cambia de servidor inmediatamente.

Última edición por jferrero; 14/06/2006 a las 04:28
  #6 (permalink)  
Antiguo 14/06/2006, 04:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Hola jferrero, muchas gracias por tu ilustrativa respuesta. Te comento...
Cita:
Por lo visto, tiene programado que si ocurre algun error, muestre la info para mandar el correo a través de un gestor de correo particular. Típico link de tipo "mailto:blablabla".
Exacto. En ningun momento comento que mande un correo. Solo digo que ofrece la opción a mandar el correo mediante el gestor de correo dle cliente, que no es más que un link de tipo "mailto". Lo que veo en ese caso, supongo, será el texto que contiene el fichero de texto que comentas, para el caso de error:
Cita:
En caso de error, el programa devuelve un fichero de texto, como se vé en los prints que hay en la función output. No manda un correo.
Aclarado esto, nos vamos a esto:
Cita:
$toEmail = 'info\@envatech.net';
mmm... este cgi, en su ubicación original está funcionando. Recuerda la pregunta inicial:
Cita:
Bien, el problema es que al mover el sitio hacia otro servidor, ese formulario me da error de envío.
Si no lo muevo, no da error, envia el correo correctamente...
Me creo lo que me dices. Voy a preguntar una vez más a esta gente, a ver qué me dicen. Si no ya les meteré un poco de caña.
Thanks man.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 14/06/2006 a las 05:08
  #7 (permalink)  
Antiguo 14/06/2006, 06:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Hola Montezión...Efectivamente tiene racón jferrero, está definitivamente mal la línea de código

$toEmail = 'info\@envatech.net';

Ya que perl tomará el \ como parte de la dirección de correo...Si en el viejo servidor funcionaba sería por una configuración especial o algo así...Debes de sacarle el ...En la gran gran mayoría de los servidores no te funcionará escrito de esa manera...

No me percaté de ese detalle en el código...

Saludos
__________________
Esteban Quintana
  #8 (permalink)  
Antiguo 14/06/2006, 10:20
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Seguramente habrá funcionado antes porque en el formulario html existirá un campo de texto o un campo escondido o incluído en el URL del action del form, con nombre 'to', que almacena la dirección del destinatario.
En el programa, en caso de que el formulario no tenga ese campo, entonces toma el valor de la variable $toEmail, como ocurre en la subrutina checkRequired.
  #9 (permalink)  
Antiguo 16/06/2006, 04:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Buenas chicos,
A ver, tienes toda la razón jferrero. He conseguido por fin los .FLA, y exactamente. Hay yn campo llamado 'to' con la direccion de destino [email protected]
Cita:
Iniciado por jferrero
Seguramente habrá funcionado antes porque en el formulario html existirá un campo de texto o un campo escondido o incluído en el URL del action del form, con nombre 'to', que almacena la dirección del destinatario.
Este es el código del botón del FLA:
Código:
on (release) {
	to = "[email protected]";
	subject = "De ENVATECH Web";
	loadVariables("http://www.olimawdsley.com/cgi-bin/sendmail2.cgi", _root.mailformmc, "POST");
	sendTime = getTimer();
	gotoAndPlay("wait");
}
E imagino que en el fotograma "wait" se efectua el envío del mail. Pero veo algo raro en este código, creo... Esto:
Código:
loadVariables("http://www.olimawdsley.com/cgi-bin/sendmail2.cgi", _root.mailformmc, "POST");
mmm... No estará utilizando ese cgi, en vez del que tengo yo en la carpeta cgi.bin... ???

Respecto a la pregunta de donde está el intérprete y el sendmail, me dicen esto:

Te he hecho los cambios y sigue sin ir. El sendmail es lo que no tengo muy claro pero es que creo no puede ser otra cosa

C:\Program Files\SWsoft\Plesk\Additional\Perl\bin\perl.exe -w
c:\windows\system32\sendmail.dll


Conseguimos algo con esto? Necesitamos alguna otra información?

De momento solo he hecho el cambio de la direccion de correo. Ahora esa linea es así:
Código:
$toEmail = '[email protected]';
Como me habeis indicado..
Estoy abierto a cualquier prueba que necesiteis que haga...
Gracias a los dos por vuestro apoyo.
Saludos.
__________________
..:: moNTeZIon ::..

Última edición por moNTeZIon; 16/06/2006 a las 09:16
  #10 (permalink)  
Antiguo 16/06/2006, 09:16
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Esa variable almacena la dirección de destino en caso de que no indiques ningún campo 'to' en tu formulario web. ¿Lo has hecho?.

En cuanto a lo del sendmail... Perl va a intentar ejecutar el sendmail como un programa normal, así que debe de estar en su PATH. Como veo que estás trabajando en windows, no puedo ayudarte. Hace mucho que conseguí dejarlo.
  #11 (permalink)  
Antiguo 16/06/2006, 09:18
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
En windows no hay sendmail, tienes que usar un script especial para windows, o programar uno tu mismo, hay un tutorial muy simple en www.perlenespanol.com sobre como enviar mails bajo windows...

Espero que te sirva

Saludos
__________________
Esteban Quintana
  #12 (permalink)  
Antiguo 16/06/2006, 10:51
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Vale, OK. He decidido que voy a desistir, pues. Tampoco es plan de perder aqui horas para trasladar el dominio de un sitio a otro. Lo dejo donde está pues, y fuera.

Ahora me pasó algo extraño.
Quise hacer la prueba de ver qué ocurria quitando el CGI de la carpeta "cgi-bin" para ver si daba error. Y efectivamente, respondió con el comportamiento de cuando no se puede enviar.
Bien, he vuelto a subir el CGI al mismo sitio donde estaba y no funciona... sigue mostrando que no se pudo enviar... Pero si estaba funcionando!
Que ha ocurrido?? Puede ser eso que comento?? Como es posible?
Gracias.
__________________
..:: moNTeZIon ::..
  #13 (permalink)  
Antiguo 17/06/2006, 20:23
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
oye porque no me mandas el script por mail a estebanquintana[arrobo]wpymes.com

Así lo veo y te digo si hay algo mal con el...

Saludos
__________________
Esteban Quintana
  #14 (permalink)  
Antiguo 18/06/2006, 13:38
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Te agradezco mucho tu ayuda Monoswim.
Mañana cuando llegue te lo mando.
Saludos.
__________________
..:: moNTeZIon ::..
  #15 (permalink)  
Antiguo 19/06/2006, 08:32
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
hoy lunes en argentina es feriado, no estaré por la oficina, el martes cuando llegue lo checkeo...

Saludos
__________________
Esteban Quintana
  #16 (permalink)  
Antiguo 22/06/2006, 01:47
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
OK. Gracias man.
A ver si le ves el tema.
__________________
..:: moNTeZIon ::..
  #17 (permalink)  
Antiguo 22/06/2006, 05:44
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
te respondí el mail diciendo que no había ningún script adjuntado...

Saludos
__________________
Esteban Quintana
  #18 (permalink)  
Antiguo 22/06/2006, 06:00
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Te lo volví a mandar ahora mismo.
He comprobado y no he recibido tu respuesta.
De todas formas, el codigo completo del CGI está en el segundo post de este hilo.
Lo unico que cambié fue por esta linea:
$toEmail = '[email protected]';

Gracias!
__________________
..:: moNTeZIon ::..
  #19 (permalink)  
Antiguo 22/06/2006, 06:09
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
hay un error muy tonto, seguramente generado por el editor de texto que usaste...

por ejemplo abajo de todo del script tienes

# ----------------------------- end subroutines
------------------------------------

Lo cual está en dos líneas, pero originalmente estaba en una ya que es un solo comentario, y al estar en dos líneas la segunda con -------- en vez de ser tomado como un comentario el intérprete intenta ejecutar esa línea, la cual tira error...

Este error está en mucho comentarios, como 10 que de alguna forma cortaron y se colocaron en 2 líneas cuando deberían estar solo en una

Un comentario (línea que es ignorada por el intérprete) siempre debe empezar con #

SOLUCION: le puse al script

# ----------------------------- end subroutines
#------------------------------------

en cada lugar donde estaba mal, ahora está correcta la sintaxis, te lo reenvío al mail...Desde otra casilla

Saludos
EDITADO: ya salió el mail....
__________________
Esteban Quintana

Última edición por monoswim; 22/06/2006 a las 06:19
  #20 (permalink)  
Antiguo 22/06/2006, 08:29
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Joder, da gusto tratar con gente como tu!
He recibido el mail. Ahora lo probaré.
Siento no haberme dado cuenta de eso del comentario.. Pero por más que mirara, no se si lo hubiera visto.. sin saber Perl.
Muchas gracias crack!
Nos vemos
__________________
..:: moNTeZIon ::..
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 04:40.