2007-06-18 13:49 @617 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Insertar link
|
|
Hola, soy nuevo en esto. He creado un formulario en mi web. De momento parece que funciona, solo que necesito saber como puedo decirle que me abra una página cuando se envie el formulario. O sea, quiero que haga lo mismo que hace este mismo foro al registrarse un nuevo usuario. Muchas gracias de antemano.
|
2007-06-19 05:55 @288 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Problema resuelto. Nuevo problema.
|
|
Muchas gracias por responder tan rápido. Ya lo he solucionado. Lo que ocurre es que no me manda el email con los datos introducidos. ¿A qué puede deberse? Bueno, decir que el script que coloque en el servidor es uno que encontré en Internet y creo que tiene unas cuantas líneas de código de mas. ¿Puede que eso haga mas lento el proceso de envío? Por que tarda un montón en enviar el formulario. Gracias de antemano. Espero que me podáis resolver estas dos dudas. Si queréis puede pegar el código del script a ver qué os parece. Gracias.
|
2007-06-19 07:12 @342 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Ni idea
|
No tengo ni idea de lo que es eso. Aquí te dejo la joya. A ver si me puedes ayudar. Using perl Syntax Highlighting #!/usr/bin/perl
############################################################
#
# Justino Martinez, 1998 <!-- e --><a href="mailto:justino@jet.es">justino@jet.es</a><!-- e -->
# <!-- m --><a class="postlink" href="http://web.jet.es/justino">http://web.jet.es/justino</a><!-- m -->
#
# TotMail.cgi V1.0
#
############################################################
#
# Envia por correo el contenido de un formulario y genera
# una pagina de respuesta independientemente de como este
# construido el formulario
#
############################################################
#
# TotMail V1.0 puede copiarse, modificarse y usarse
# libremente a condicion de que no se borre ni modifique
# la cabecera ni este texto.
#
############################################################
#
# Llamada desde el formulario:
# <form method=POST action="URL de este cgi">
#
############################################################
#
# Instalacion:
# Definir las variables de abajo y dar
# permisos 755 a este script
#
############################################################
##########################
# Definimos las variables
# Donde esta el sendmail?
$mailprog = '/usr/sbin/sendmail';
# Cual es TU direccion de mail?
$mimail= <!-- e --><a href="mailto:'contacto@errantes.es">'contacto@errantes.es</a><!-- e -->';
# Que subject quieres ver en estos correos?
$asunto= 'Comentarios';
# Codigo de la pagina que vera el usuario cuando haya
# enviado el formulario.
# Cada linea debe ponerse en una instruccion
# push(@codigo,"texto de la linea");
# para escribir dobles comillas debe usarse la comilla
# simple (por ejemplo push(@codigo,"<body bgcolor='#FFFFFF'>");)
# puedes anyadir o quitar lineas anyadiendo o quitando
# instrucciones push(@codigo,"lo que sea");
#
####################################################################
# A partir de aqui no hay que tocar nada
####################################################################
# Toma las entradas del formulario
&toma_entradas;
&envia_mail($mimail,$asunto);
&responde;
# ======================== SUBRUTINAS
# ---------------------------- Responde al usuario
sub responde
{
# Empieza la creacion de la pagina que vera el usuario
print "Location: <!-- m --><a class="postlink" href="http://www.errantes.es/formredirect.html">http://www.errantes.es/formredirect.html</a><!-- m -->\n\n";
foreach $linea (@codigo) {
print "$linea\n";
}
}
# ---------------------------- Recoge los parametros
# Subrutina original de Chispa (<!-- e --><a href="mailto:chispa@arrakis.es">chispa@arrakis.es</a><!-- e -->)
#
sub toma_entradas {
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
# Recoge el par name-value
@pairs = split(/&/, $ENV{'QUERY_STRING'});
}
elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
# Lee la entrada
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Recoge el par name-value
@pairs = split(/&/, $buffer);
}
foreach $pair (@pairs) {
($name, $value) = split(/\=/, $pair);
# Eliminamos caracteres peligrosos
$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;
$QUERY{$name} = $value;
}
}
sub envia_mail
{
local ($recipient,$subject);
$recipient=@_[0];
$subject=@_[1];
$recipient=~s/^(.*)\n$/\1/;
if ($recipient)
{
open (MAIL, "|$mailprog $recipient") || die "No puedo abrir $mailprog!\n";
print MAIL "Reply-to: $recipient (No admite reply)\n";
print MAIL "To: $recipient\n";
print MAIL "Subject: $subject\n";
print MAIL "From: Formulario\n";
print MAIL "\n";
print MAIL "-----------------------------------------------------------\n";
while (($name, $value) = each(%QUERY)){
print MAIL "Contenido del campo $name:\n";
print MAIL "$value\n";
print MAIL "-----------------------------------------------------------\n";
}
print MAIL "-----------------------------------------------------------\n\n";
print MAIL "TotMail V1.0 Justino Martinez, 1998\n";
print MAIL "http://web.jet.es/justino\n";
close (MAIL);
}
}
|
2007-06-20 06:56 @331 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Utilizar smtp
|
|
¿Cómo lo hago para utilizar SMTP directamente? En el servidor no me dan ninguna solución a esto.
|
2007-06-20 07:40 @361 |
|
|
 |
explorer
Administrador
|
Registrado: 2005-07-24 18:12 @800 Ubicación: Valladolid, España Mensajes: 10261
|
|
|
|
Siempre lo más cómodo es usar al MTA en el ordenador donde estás ejecutando tu programa. Pregunta en el servidor si disponen de algún gestor de correo, al no tener el sendmail. Si no tienen nada de eso, puedes probar a instalar algunos módulos de Perl para imitarlo, como puede ser el Email::Send, que a su vez necesita del Net::SMTP. Y si necesitas autenticarte para poder enviar el correo, también tendrás que usar Net::SMTP::SSL si usas esa encriptación. Otros módulos pueden ser más sencillos, como el Mail::Sender, pero dependen de otros módulos. Por cada módulo que instales tienes que ver antes de qué módulos dependen. Mira en CPAN o mejor en la página de proyecto de email sobre Perl, pero no te asustes de los centenares que hay. Vete a la caja de búsqueda y pon 'simple'. Si al final te es muy complicado hacer la instalación, quizás lo más sencillo sea cambiar de servidor, y buscar otro que sí de soporte para poder enviar correos. Vamos, lo mínimo que tiene que decirte es cómo se llama su servidor de correo para poder enviarle algo, y si dispone de algún programa tipo sendmail o mail para hacerlo más sencillo.
|
2007-06-20 08:30 @396 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
¡Funciona! O casi...
|
Bueno, ya me envía los e-mails, no sé cómo ni porqué, pero así es. Lo que ocurre es que solo me manda los del campo nombre. No me envía los demás datos. ¿A qué se debe? Aquí está el dichoso formulario: http://www.errantes.es/Contacto.html
|
2007-06-20 10:22 @473 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Muchas gracias explorer!
|
|
¡Muchas gracias tío! Ya funciona todo perfectamente, ¡incluso va rápido y todo! Sin tu ayuda no lo hubiera conseguido, ya que no tengo ni idea de esto. Y ya que es de "bien nacidos ser agradecidos", voy a poner mi granito de arena para que sigáis haciéndolo igual de bien durante mucho tiempo.
|
2007-06-20 13:41 @612 |
|
|
errante
Perlero Nuevo
|
Registrado: 2007-06-18 13:43 @613 Mensajes: 7
|
|
|
Ni idea
|
|
La verdad que no sé a qué se debe el que funcione ahora y antes no (además lo hace a la velocidad del rayo), porque no he cambiado nada en el script. De lo que estoy convencido es de que el error estaba en el servidor, pero eso no me lo van a decir, me temo. Al final, el último problema que me surgió lo solucioné poniendo en tipo de codificación "application/x-www-form-urlencoded". Así me devuelve los datos de todos los campos. Lo dicho, muchas gracias y ahí va mi humilde donación que espero os ayude a seguir como hasta ahora. Gracias.
|
|
Página 1 de 1
|
[ 14 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
|
|
Socializa |
 |
|