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

Problemas con el formulario

Estas en el tema de Problemas con el formulario en el foro de Programación General en Foros del Web. Aunque sigo al pie de la letra todas las modificaciones, no logro que ande el formulario. Me baje el FormMail. Modifique la primera línea con ...
  #1 (permalink)  
Antiguo 25/06/2006, 18:35
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Problemas con el formulario

Aunque sigo al pie de la letra todas las modificaciones, no logro que ande el formulario. Me baje el FormMail. Modifique la primera línea con la dirección que me dieron en el hosting:
c:\perl\perl.exe

En lugar de
@referers = ('scriptarchive.com','209.196.21.3');
Puse:
@referers = ('olas.org.ar');

El problema es que este hosting no utiliza el SendMail, sino que se manejan por smtp.
En la línea 33 ($mailprog = '/usr/lib/sendmail -i -t';), puse:
$mailprog = 'mail.olas.org.ar';

Al probarlo el mensaje que aparece es:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Nose si necesitan algún otro dato.
Espero puedan ayudarme...
Gracias y saludos

Malena
  #2 (permalink)  
Antiguo 26/06/2006, 05:49
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
El problema está justo en el momento de quitar el sendmail... el FormMail sólo usa el programa indicado por la variable $mailprog para mandar el correo. Si tu servidor no tienen sendmail, ni ningún otro programa del lado del servidor para enviar correo, entonces no puedes usar el FormMail.

O dicho de otra forma, para poder enviar vía smtp deberás hacer muchos cambios en el script.

La solución es la siguiente. Debes usar este FormMail:
http://nms-cgi.sourceforge.net/scripts.shtml

Bájate la versión 3.14c1.
Ábrelo con un editor de textos, vete a la zona de configuración que está por la línea 40 y haz los siguientes cambios (sólo hay que hacer un par de ellos):
Código:
 $DEBUGGING = 1;          # Déjalo en 1 mientras haces pruebas
 $emulate_matts_code= 0;  # Déjalo siempre en 0
 $secure            = 1;  # Déjalo siempre en 1
 $allow_empty_ref   = 0;
 $max_recipients    = 5;  # Si estás segura que sólo vas a enviar un correo
                          # a una sóla, déjalo en 1
#$mailprog          = '/usr/lib/sendmail -oi -t'; # Esta es la línea si tuvieras sendmail
 $mailprog          = 'SMTP:servidor.de.correo.com'; # Y esta es la forma que necesitas.
                          # Pon el servidor de correo de tu dominio
                          # Lo importante es que empieze por SMTP:
 $postmaster        = ''; # La dirección de correo de la persona que reciba
                          # los correos rebotados
 @referers          = qw(olas.org.ar localhost);
                          # Dominios con permiso para
                          # ejecutar este programa
 @allow_mail_to     = qw([email protected]);
                          # Quien puede recibir correo
 @recipients        = (); # Déjalo así
 %recipient_alias   = (); # Este campo es muy útil, para que no tengas que
                          # poner tu dirección de correo en el formulario html,
                          # con lo que te libras del spam
 @valid_ENV         = qw(REMOTE_HOST REMOTE_ADDR REMOTE_USER HTTP_USER_AGENT);
                          # Déjalo así
 $locale            = 'es_AR'; # Según el país
 $charset           = 'iso-8859-1';
 $date_fmt          = '%A, %B %d, %Y a las %H:%M:%S'; # Formato de la fecha
                          # Consulta el README
 $style             = '/css/nms.css'; # Se puede personalizar el estilo.
                          # Si no quieres ninguno, déjalo en ''
 $no_content        = 0;  # Ponlo a 1 (no recomendable) si no quieres que
                          # que el script devuelva una página de resultado
 $double_spacing    = 1;  # Esta y las siguientes opciones personalizan
                          # el aspecto del correo que recibes
 $wrap_text         = 0; 
 $wrap_style        = 1;
 $address_style     = 0;
 $send_confirmation_mail = 0; # Si quieres que la persona que te envió el correo
                              # reciba a su vez una confirmación
 $confirmation_text = <<'END_OF_CONFIRMATION';
From: [email protected]
Subject: Envio de formulario

Gracias por tu envío.

END_OF_CONFIRMATION
Luego lo subes y haces pruebas...
  #3 (permalink)  
Antiguo 26/06/2006, 05:59
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
http://www.forosdelweb.com/showpost....5&postcount=66

En esa faq tienes otro link a un script tipo FormMail para windows...

Saludos
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 27/06/2006, 10:56
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Detalle el que me faltaba!!! jeje.
Muchas gracias a los dos.. salio rapidísimo.
Saludos
  #5 (permalink)  
Antiguo 12/07/2006, 13:44
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Al poco tiempo de resolver el problemita.... decidieron cambiar de hosting . Este tampoco tiene el "sendmail" ni ningún otro programa.
El tema ahora es que este formulario acá no funciona... ya cambie lo datos, hice varias pruebas pero nada...
Copio a continuación, parte del FormMail.pl

Espero que puedan ayudarme
Muchas gracias
Saludos





#!/usr/bin/perl -wT
#
# NMS FormMail Version 3.14c1








BEGIN
{
$DEBUGGING = 1;
$emulate_matts_code= 0;
$secure = 1;
$allow_empty_ref = 1;
$max_recipients = 1;
$mailprog = 'SMTP:mail.olas.org.ar';
$postmaster = '[email protected]';
@referers = qw(olas.org.ar localhost);
@allow_mail_to = qw([email protected]);
@recipients = ();
%recipient_alias = ();
@valid_ENV = qw(REMOTE_HOST REMOTE_ADDR REMOTE_USER HTTP_USER_AGENT);
$locale = 'AR';
$charset = 'iso-8859-1';
$date_fmt = '%A, %B %d, %Y at %H:%M:%S';
$style = '';
$no_content = 0;
$double_spacing = 1;
$wrap_text = 0;
$wrap_style = 1;
$address_style = 0;
$send_confirmation_mail = 0;
$confirmation_text = <<'END_OF_CONFIRMATION';
From: [email protected]
Subject: Formulario

Gracias por contactarse.

END_OF_CONFIRMATION
  #6 (permalink)  
Antiguo 12/07/2006, 14:19
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
$smtp_server = "mailhost.domain.com";

De donde sacaste esa cofiguración ??? Solo tienes que configurar la cabecera ? que script usas?

Saludos
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 12/07/2006, 16:43
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Uso el FormMail Version 3.14c1 esta en la siguiente pagina:

nms-cgi.sourceforge.net/scripts.shtml (es el primero)
  #8 (permalink)  
Antiguo 12/07/2006, 16:58
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
#!/usr/bin/perl -wT

no es para windows...

Saludos
__________________
Esteban Quintana
  #9 (permalink)  
Antiguo 12/07/2006, 18:13
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Antes que nada muchas gracias por la rapidez de todas tus respuestas.
Cual es la opcion mas sencilla para realizar un formulario... teniendo en cuenta que ellos no tienen ningun programa.
Gracias y saludos
  #10 (permalink)  
Antiguo 13/07/2006, 03:38
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
El programa nms que muestras no usa el sendmail, ya que en la línea pones:
$mailprog = 'SMTP:mail.olas.org.ar';
Es decir, se está conectando por smtp a ese servidor de correo. ¿Es posible que este servidor requiera autenticación para dejarte enviar los correos?

Vete a la línea 1035 aproximadamente, y después de la línea
use CGI;
pon:
use CGI::Carp qw(fatalsToBrowser);
De esa manera, si hay algún error saldrá por el cliente web.
  #11 (permalink)  
Antiguo 13/07/2006, 12:21
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
El servidor si efectivamente requiere autentificación.

Ya hice el cambio... pero sigue con el mismo error... me dice que la pagina no puede ser mostrada.

La pagina desde donde estoy probando es: olas.org.ar/formulario1.htm (por si sirve de algo

Muchas gracias
Saludos
  #12 (permalink)  
Antiguo 13/07/2006, 12:46
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
pero es n hosting windows o linux ?

porque si es windows nunca te va a andar si en la primera línea dice #!/usr/bin/perl -wT

Saludos
__________________
Esteban Quintana
  #13 (permalink)  
Antiguo 14/07/2006, 04:45
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Intenta poner en el servidor mi CGI mínimo para comprobar que el sistema de cgi funciona. Pero antes debes hacer los cambios que te dice monoswim.
  #14 (permalink)  
Antiguo 14/07/2006, 15:55
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
Efectivamente era Windows... pero ya lo cambie a Linux y sigue sin funcionar (por lo menos ahora cambio el error)

Hice la prueba con el CGI Minimo, pero me dice lo mismo que el formulario... pueden verlo aca: olas.org.ar/cgi-bin/minimo.pl

Espero que puedan ayudarme.
Saludos
  #15 (permalink)  
Antiguo 15/07/2006, 03:37
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Fíjate que lo he actualizado (faltaba una coma al final de una línea).

He mirado la página y me da un error 500 ¿le has dado permiso de ejecución?
  #16 (permalink)  
Antiguo 15/07/2006, 11: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
cuando subes un script al directorio cgi-bin tienes que darle permisos de ejecución chmod 755 que lo haces desde un FTP como el LeapFTP

En la sección de tutoriales de www.perlenespanol.com hay un tutorial de CGI primeros pasos que te servirá mucho...

Saludos
__________________
Esteban Quintana
  #17 (permalink)  
Antiguo 18/07/2006, 18:23
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses
Puntos: 0
LISTO! solucionado!
Muchas gracias
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:32.