Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Ayuda formulario contacto flash envío por Perl Responder al tema
Nuevo tema


Página 1 de 1  [ 15 mensajes ] 
 
Nota 2010-07-05 12:48 @575

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Ayuda formulario contacto flash envío por Perl
:wink:

¿Alguien me puede ayudar a revisar un formulario de contacto?

Formulario hecho en Flash as2 se envía por Perl con archivo .pl.
Sitio alojado en Yahoo hosting y no permite archivos .cgi.
Servidor Unix

Dicho archivo es el famoso FormMail Matt Wright.
Ya modifiqué lo que dicen las instrucciones pero no funciona. Solo dice que se envía pero no llega nada.

Se envía a un correo que pertenece al mismo servidor para que sea correo local y tampoco llega.


Nota 2010-07-05 15:34 @690
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Bienvenido a los foros de Perl en Español, vict0rhug0.

Hay algo que no comprendo... dices que el alojamiento no admite CGI, pero aún así estás intentando ejecutar el programa de Matt como un CGI (porque realmente es un CGI).

Yo consultaría los registros de actividad del servidor web, sobre todo el que guarda los errores, por si me dice algo.

Otra opción es colocar

use CGI::Carp qw(fatalsToBrowser);

Hacia el principio del programa, justo después del use CGI; (si el programa lo usa, claro). Así, si hay errores, saldrán en la página web.

_________________
JF^D Perl programming


Nota 2010-07-05 16:49 @742

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
muchisimas gracias por responder!!! :mrgreen:
soy diseñador web
La verdad soy principiante en perl y en programacion

Este el mensaje de error que aparece en mailerror.log
"Jun 29 23:31:18 From address not in member domain. Message not sent"

pues segun tenia entendido funciona cono perl por que tiene extension .pl
y si lo quiero convertir a CGI solo debo cambiarle la extension .cgi

(del formulario que descargue) Este es el script del boton enviar de flash as2:

on (release) {
if (nombre eq "") {
status = "Por Favor digite su nombre";
} else if (email eq "") {
status = "Por Favor digite su email";
} else if (comentarios eq "") {
status = "Sus comentarios son importantes";
} else {
status = "";
subject = "Formulario_internet";
recipient = "user@server.com";
loadVariables("http://www.server.com/cgi-bin/formmail.pl", "", "POST");
gotoAndStop("ok");
}
}
on (rollOver) {
status = "Enviar";
}
on (rollOut) {
status = "status";
}


Nota 2010-07-05 16:59 @749

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Nuevamente, gracias, explorer.

Si crees que no va a servir por el hecho que funciona como archivo cgi,
para descartarlo y buscar otra opción.

Yahoo me da un script en Perl como plantilla para usarlo. El problema que no sé cómo adaptarlo a mi formulario y ni que cambios hay que hacer.

Este es el script del archivo Perl formail.pl del archivo de Matt's Script Archive, Inc.

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. ##############################################################################
  3. # FormMail                        Version 1.6                                #
  4. # Copyright 1995-1997 Matt Wright mattw@worldwidemart.com                    #
  5. # Created 06/09/95                Last Modified 05/02/97                     #
  6. # Matt's Script Archive, Inc.:    http://www.worldwidemart.com/scripts/      #
  7. ##############################################################################
  8. # COPYRIGHT NOTICE                                                           #
  9. # Copyright 1995-1997 Matthew M. Wright  All Rights Reserved.                #
  10. #                                                                            #
  11. # FormMail may be used and modified free of charge by anyone so long as this #
  12. # copyright notice and the comments above remain intact.  By using this      #
  13. # code you agree to indemnify Matthew M. Wright from any liability that      #
  14. # might arise from its use.                                                  #
  15. #                                                                            #
  16. # Selling the code for this program without prior written consent is         #
  17. # expressly forbidden.  In other words, please ask first before you try and  #
  18. # make money off of my program.                                              #
  19. #                                                                            #
  20. # Obtain permission before redistributing this software over the Internet or #
  21. # in any other medium.  In all cases copyright and header must remain intact #
  22. ##############################################################################
  23. # Define Variables                                                           #
  24. #        Detailed Information Found In README File.                          #
  25.  
  26. # $mailprog defines the location of your sendmail program on your unix       #
  27. # system.                                                                    #
  28.  
  29. $mailprog = '/usr/lib/sendmail';
  30.  
  31. # @referers allows forms to be located only on servers which are defined     #
  32. # in this field.  This security fix from the last version which allowed      #
  33. # anyone on any server to use your FormMail script on their web site.        #
  34.  
  35. @referers = ('zapotlanejo.net');
  36.  
  37. # Done                                                                       #
  38. ##############################################################################
  39.  


Nota 2010-07-05 17:50 @785
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Primero... si el programa te lo da Yahoo, se supone que debería de funcionar en sus sistemas.

Segundo... esa versión es antiquísima (del siglo pasado). Está llena de agujeros de seguridad, por lo que años más tarde, gente independiente creo el nms FormMail, que incidía sobre todo en el tema de la seguridad (es el que yo uso). Por fin, el año pasado, el propio Matt creo una nueva versión, la 1.93, donde prometía que había corregido esos fallos. Incluso tiene una página web comercial, donde por 1$ al mes puedes usar FormMail sin instalarlo.

Y tercero, en cuanto a la configuración, yo veo que es correcta. Las versiones más modernas traen muchas más opciones que esas dos, pero la importante es la de @referers. En mi programa, me vale con poner

@referers = ('localhost');

porque estoy indicando que admito cualquier correo que provenga del propio ordenador local. Pero en sistemas compartidos se suelen poner los nombres de las máquinas, con sus dominios, que alojan el correo. Por ejemplo:

@referers = ('correo.zapotlanejo.net');

Bueno... posibilidades hay varias, pero, en principio, la que muestras es correcta.

_________________
JF^D Perl programming


Nota 2010-07-06 11:03 @502

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Lo que pasa es que ese formulario lo descargué de Internet.
Yahoo hosting me proporciona un script Perl .pl pero no sé cómo adaptarle y hacerlo que funcione desde Flash.

El script es:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. print "Content-type: text/html\n\n";
  3.  
  4. $title='mail test';
  5. $to='MAIL ADDRESS TO SEND TO';
  6. $from= 'EMAIL@YOURDOMAIN.COM';
  7. $subject='Using Sendmail';
  8. open(MAIL, "|/usr/sbin/sendmail -t");
  9. ## Mail Header
  10. print MAIL "To: $to\n";
  11. print MAIL "From: $from\n";
  12. print MAIL "Subject: $subject\n\n";
  13. ## Mail Body
  14. print MAIL "This is a test message from Yahoo! \n";
  15. close(MAIL);
  16. print "<html><head><title>$title<
  17. /title></head>\n<body>\n\n";
  18. ## START HTML content
  19. print "<h1>$title</h1>\n";
  20. print "<p>A message has been sent from $from to $to";
  21. ## END HTML CONTENT
  22. print "\n\n</body></html>";


O no sé cuál formulario me recomienda para que me pueda funcionar. La verdad ya he hecho demasiadas pruebas y no me funcione, no sea que éste la falla.


Nota 2010-07-06 11:47 @532
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Si esa es la plantilla que te da Yahoo, no entiendo porqué dices que no admite CGI, ya que se ve que ES un cgi...

Para llamarlos desde Flash, debes hacerlo igual que si lo llamaras desde el propio navegador. Es decir, debes saber

1.- La URL que debes usar para acceder a ese cgi. Eso lo deben indicar en tu alojamiento.

2.- Si quieres pasarle argumentos, con qué método (POST o GET) hay que hacerlo. Lo más seguro es que funcione de las dos maneras.

3.- Debes adaptar este programa para que pueda leer esos argumentos. Yo intentaría usar las facilidades del módulo CGI.pm de Perl, ya que ahorra mucho trabajo. Mira mi CGI mínimo.

4.- Las primeras pruebas las haría usando el URL, en un navegador web. Luego, bastaría con meter esa petición en una llamada desde el Flash, con AS (es decir, "llamar" a un programa CGI es lo mismo que si hiciéramos una petición HTTP normal y corriente).

_________________
JF^D Perl programming


Nota 2010-07-06 18:14 @801

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Esto es lo que responde Yahoo hosting: (Nota: todas las respuesta de Yahoo están prefabricadas y solo te envían la respuesta más cercana a tu caso)

Citar:
"Tenga en cuenta que Yahoo! no admite o requiere un directorio cgi-bin para
ejecutar scripts Perl. Usted puede colocar en cualquier lugar de su sitio la estructura de directorios de los scripts de Perl. Asegúrese que cada secuencia de comandos incluye la extensión de archivo .pl o, si está llamando a un módulo de Perl. Si su script en Perl usa la extensión .cgi, por favor, cambie su nombre con la extensión .pl."

¿Dónde está mi directorio cgi-bin?
(misma respuesta que antes)

¿Qué extensiones de archivo puedo usar para mis scripts de Perl?
"Yahoo! sólo es compatible .pl y extensiones .pm para scripts de Perl. scripts de Perl independientes utilizan la extensión .pl, mientras que los módulos Perl usan .pm. No apoyamos la extensión .cgi o scripts .cgi. Si su script de Perl utiliza la extensión .cgi, por favor, cambie su nombre a la extensión .pl."


Ya probé el archivo minimo.cgi y lo abrí en la URL y no funciona
lo probé en http://www.misitio.com/minimo.cgi me aparece: "Sorry, Internal Server Error". y en error.log aparece lo mismo de antes.


Nota 2010-07-07 02:03 @127
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
He reeditado tu mensaje, porque algunas frases de los de Yahoo! eran casi incomprensibles.

De ese texto podemos sacar las siguientes conclusiones: Sí que se soportan programas CGI, pero no han de tener la extensión .cgi, sino .pl.

Así que eso es lo que tienes que hacer: cambia la extensión de minimo.cgi a minimo.pl.

_________________
JF^D Perl programming


Nota 2010-07-07 10:52 @494

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Sí, el texto de Yahoo! hosting tenía algunos errores ya que estaba en ingles y utilice un traductor en español.

Perdón, una corrección: el archivo que utilicé es minimo.pl
Lo probé en la URL:
http://www.misitio.com/minimo.pl

y como le comenté, no funciona.

La verdad, ya no sé qué hacer.

Y nuevamente, le agradezco su ayuda.


Nota 2010-07-07 11:30 @521
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Pues esto es muy raro... He leído la ayuda de Yahoo! hosting y no dice que sean necesarios más pasos. Ni siquiera es necesario cambiar los permisos de ejecución de los programas.

Lo que también es extraño es el mensaje de error.log, que no dé más información al respecto.

Prueba a editar el minimo.pl y deja comentada la línea del "use CGI::Carp...". Veo en su lista de módulos soportados no aparece. A propósito, la lista es ridícula comparada con otros alojamientos de Perl.

Antes de subirlo a Yahoo!, haz un

perl -c minimo.pl

en tu propio ordenador. Te dirá si la sintaxis es correcta o hay algún error en algún sitio.


Y si no... intentaría ponerme en contacto con soporte de Yahoo!.

Aquí hay otro programa mínimo que puedes probar.

_________________
JF^D Perl programming


Nota 2010-07-07 12:53 @578

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Ya probé el otro programa minimo.pl,

Lo nombré cgi_perl.pl

La URL es: http://misitio/cgi_perl.pl y no funcionó. Me aparece el mismo error y le cambié extensión a .html y me abre pagina con este mensaje:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
#! / Usr / bin / perl $ titulo = "Su título aquí";
$ contenido = "Aquí está un cierto contenido. Esto va a abrir entre las etiquetas de su cuerpo."
print "Content-type: text / html \ n \ n"; print "


Y estoy haciendo las pruebas de probar el archivo Perl en mi ordenador y revisar la sintaxis.


Nota 2010-07-07 13:37 @609
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Si lo has cambiado a .html, y sale eso, es que tienes mal escrito el programa... debería salir EXACTO al texto que deberías tener escrito...

Es decir... yo veo un montón de errores:

#! / Usr / bin / perl $ titulo = "Su título aquí";

La primera línea debería ser #!/usr/bin/perl, y no otra cosa.

$ contenido = "Aquí está un cierto contenido. Esto va a abrir entre las etiquetas de su cuerpo."

Lo mismo, le falta el ';'.

print "Content-type: text / html \ n \ n"; print "

Aquí hay espacios entre '\' y 'n'. Mejor dicho, hay espacios por todos lados.

Vamos, un desastre.

No deberías copiar lo que sale en la ventana del navegador web, sino el código fuente de esa página web.

Usa el truco del -c para comprobar la sintaxis. Incluso puedes ejecutar estos programas sencillos en tu propio ordenador para comprobar que sale bien la salida.

_________________
JF^D Perl programming


Nota 2010-07-07 18:22 @807

Perlero Nuevo
Registrado: 2010-07-05 12:18 @554
Mensajes: 8
Re: Ayuda formulario contacto flash envío por Perl
Lo mismo digo, no, es el colmo que si en Yahoo! me están dando ese script contenga errores.

Probé (en otro servidor de hosting) el archivo minimo.pl que me has pasado y aparece el mensaje:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
#!/usr/bin/perl
#
     CGI MINIMO
#
 Joaquín Ferrero. 2006.
#
Este cgi sirve para comprobar si el servidor funciona con Perl+CGI
#
use CGI
      qw(:standard      );
"use CGI::Carp" qw(fatalsToBrowser);

print
 
   header,
    start_html('CGI MINIMO'),
    h1('CGI MINIMO'),
    hr,
 
  p('Si ves este texto es que S&Iacute; est&aacute; funcionando bien.'),
   
hr;

# Aquí sacamos la lista de los parámetros
# en caso de que le haya sido pasado alguno
my @parametros = param();
foreach my $par ( @parametros ) {
   
     print p($par);
        print blockquote(param( $par ));
}

print end_html;


En el servidor de Yahoo! solo aparecía error.

La verdad no encuentro la solución al problema y no puedo cambiar de hosting porque el propietario de la página ya había contratado servicios con dicha empresa.


Nota 2010-07-08 14:34 @648
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Re: Ayuda formulario contacto flash envío por Perl
Yo no he dicho que el programa de Yahoo! tenga errores... es más, NO tiene errores el programa de Yahoo! que he visto en sus páginas.

Sí que tiene errores lo que yo veo que estás mostrando.

Recuerda: NO copies el texto que sale en una página web. DEBES copiar (y pegar aquí) el CÓDIGO FUENTE de esa página web (en Firefox, por ejemplo, sale al pulsar Control-U, o eligiendo la opción adecuada en el menú Ver).

En cuanto al resultado que muestras, está demostrando que no se ejecutado el minimo.pl en el servidor. El servidor te lo está devolviendo como si fuera un fichero de texto normal y corriente.

Debes acomodarte a las especificaciones de cada alojamiento, en cuanto a dónde y cómo han de colocarse los CGI.

_________________
JF^D Perl programming


Responder al tema  [ 15 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO