Foros del Web » Programando para Internet » PHP »

Problema con formulario "Recomiendanos"

Estas en el tema de Problema con formulario "Recomiendanos" en el foro de PHP en Foros del Web. Hola a todos, hace días he colgado una web en la que he creado un formulario de recomiendanos siguiendo unos tutoriales, pero no funciona y ...
  #1 (permalink)  
Antiguo 18/07/2008, 03:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con formulario "Recomiendanos"

Hola a todos, hace días he colgado una web en la que he creado un formulario de recomiendanos siguiendo unos tutoriales, pero no funciona y no manda el e-mail.
El código es el siguiente, en "Recomiendanos.html":
Código:
<TABLE cellSpacing="5" cellPadding="5" align="center" border="0" width="350" height="277">
                                <TBODY>
                                <TR>
                                <TD valign="baseline">
                                <FORM Action="recomendar.php" style="margin-top: 22px; margin-top: expression('25px'); margin-bottom: -18px; margin-bottom: expression('-20px');" od=POST><font style="font-size: 9pt;" color="F3D3AB" face="Verdana">
									<B>Tu Nombre: </B></TD><br>
                                <TD width="156"><INPUT Name="name" style="margin-top: 10px; matgin-top: expression('10px');" size="25"></TD></TR>
                                <TR>
                                <TD><font style="font-size: 9pt;" color="F3D3AB" face="Verdana">
								<B>Tu E-mail: </B></TD>
                                <TD width="156"><INPUT Name="from_email_address" style="margin-top: 0px;" size="25"></TD></TR>
                                <TR>
                                <TD><font style="font-size: 9pt;" color="F3D3AB" face="Verdana">
								<b>Nombre de tu amigo: </b></TD>
                                <TD width="156"><INPUT Name="to_name" size="25"></TD></TR>
                                <TR>
                                <TD><font style="font-size: 9pt;" color="F3D3AB" face="Verdana">
								<b>El E-mail de tu amigo: </b></TD>
                                <TD width="156"><INPUT Name="to_email_address" size="25"></TD></TR>
                                   <TR>
                                <TD>&nbsp;</TD>
                                <TD width="156"><font type="text" style="font-size: 9pt;" color="F3D3AB" face="Verdana">
 								<INPUT Type=SUBMIT value="Enviar" style="float: center"></FORM></TABLE>
Y en "recomendar.php" es:
Código:
<?php
$nombresitio = "www.artencordoba.com"; 
$contacto = "[email protected]"; 
$recomienda = "Recomienda a un Amigo: www.artencordoba.com"; 
$gracias = "Gracias."; 
?><html>
<head>
<?php
$nameX = stripslashes($name); 
$to_nameX = stripslashes($to_name); 
$url = "http://www.artencordoba.com"; 
$message = "Hola $to_nameX, Te recomiendo que ingreses en la dirección $url, en la cual podrás encontrar
todo lo relacionado con el Arte, la Cultura y el Turismo de la ciudad de Córdoba. "; 
$subject = "$to_nameX Te recomiendo esta web"; 

if (( $to_email_address) && ( $from_email_address)) { 

mail($to_email_address, $subject, $message, 
"From: ".$from_email_address); 
echo "Tu Solicitud se ha Enviado Correctamente¡"; 
} else { 

echo "No pudo ser enviada tu Solicitud¡"; 
} 
$administrador .= "------Recomienda a un Amigo------n"; 
$administrador .= "Nombre del Emisor: $namen"; 
$administrador .= "Correo del Emisor: $from_email_addressn"; 
$administrador .= "Nombre del Resector: $to_namen"; 
$administrador .= "Correo del Resector: $to_email_addressn"; 
mail("$contacto", "$nombresitio", $administrador, "From: $recomienda"); 
?><title>Recomendar este sitio</title>
Estoy revisandolo y revisandolo y nada, no se que puede pasar, pero no lo envia, ¿me podeis ayudar? Gracias!
  #2 (permalink)  
Antiguo 18/07/2008, 03:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Respuesta: Problema con formulario "Recomiendanos"

¿Recibes el segundo mail, el que va al administrador, o este tampoco?

Si no recibes ninguno de los dos mails, puede ser por la configuración de envíos de mails de PHP. Si este lo recibes, pero no el primero, puede ser porque no leas correctamente los datos del formulario.

Lo he probado y no me ha llegado nada (de momento) aunque sí me ha salido el mensaje de "Solicitud enviada correctamente".

Saludos
  #3 (permalink)  
Antiguo 18/07/2008, 04:33
 
Fecha de Ingreso: julio-2008
Ubicación: Isla Clarion; México
Mensajes: 11
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Pecando de tonto estaba leyendo tu código, el del formulatio y si lo copiaste y pegaste tal cual hay un error entonces y que puede afectar el traspaso de los datos:

Código HTML:
<FORM Action="recomendar.php" style="margin-top: 22px; margin-top: expression('25px'); margin-bottom: -18px; margin-bottom: expression('-20px');" od=POST> 
en especifico en lo último dice od=POST cambialo a method="post"

Por que por lo demás no he encontrado razón, además si tienen razón haz una simple prueba del código mail así sin tanto formato para que veas si está activo el envio de mail por PHP.

Saludos!
  #4 (permalink)  
Antiguo 18/07/2008, 05:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

He cambiado od=POST a method="post" y sigue sin funcionar, lo pruebo y me dice que la solicitud no se envio correctamente, ni siquiera me llega el mail de administrador.
Será lo que decis que no estan configurados los mails de PHP. Voy a ver como va eso y si era eso os lo digo. Muchas gracias
  #5 (permalink)  
Antiguo 18/07/2008, 05:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Pues entre en mi servidor y el envio de PHP mail está bien configurado. Ahora mismo estoy un poco perdida y no se qué hacer. Si alguien ve el error se lo agradecería, un saludo!
  #6 (permalink)  
Antiguo 26/07/2008, 12:06
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Hola, sigo con el mismo problema.
Estuve mirando en mi servidor que es Yahoo y me dice lo siguiente: "You will also need to indicate the path to the Yahoo! mail program, Sendmail. The path to Sendmail is /usr/sbin/sendmail." Y me da un código de prueba, que es este:
Código:
#!/usr/bin/perl
print "Content-type: text/html\n\n";

$title='mail test';
$to='MAIL ADDRESS TO SEND TO';
$from= '[email protected]';
$subject='Using Sendmail';

open(MAIL, "|/usr/sbin/sendmail -t");

## Mail Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
## Mail Body
print MAIL "This is a test message from Yahoo! \n";

close(MAIL);

print "<html><head><title>$title<
/title></head>\n<body>\n\n";

## START HTML content
print "<h1>$title</h1>\n";
print "<p>A message has been sent from $from to $to";
## END HTML CONTENT
print "\n\n</body></html>";
He probado insertar este código con el que yo tengo en mi web, inteercalandolo donde yo creo que va, pero nada, no lo consigo. Alguien me puede ayudar?
El recomiendanos de mi web tiene el siguiente enlace: http://www.artencordoba.com/Recomiendanos.html

Muchas gracias!
  #7 (permalink)  
Antiguo 26/07/2008, 23:44
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: Problema con formulario "Recomiendanos"

Tal vez el problema radique aquí:
Código PHP:
if (( $to_email_address) && ( $from_email_address)) { 

mail($to_email_address$subject$message
"From: ".$from_email_address); 
echo 
"Tu Solicitud se ha Enviado Correctamente¡"

Con un if compruebas que las variables $to_email_address y $from_email_address contengan una dirección de correo, pero, creo que deberias usar $_GET ó $_POST según sea la forma en como pasas los valores a través del formulario, GET ó POST, es decir, el codigo anterior puede quedar así:

Código PHP:
if (isset($_POST['to_email_address']) && isset($_POST['$from_email_address']))

$to_email_address $_POST['to_email_address'];
$message $_POST['mensaje'];
$from_email_address $_POST['from_email_address'];

mail($to_email_address$subject$message
"From: ".$from_email_address); 
echo 
"Tu Solicitud se ha Enviado Correctamente¡"

Por cierto, revisé el codigo desde firefox y sigue estando "od=POST" en lugar de method="POST".

P.D. En php debes usar $_GET[''] para trabajar con las variables que pasas por get, y $_POST[] para cuando usas post en el formulario. La forma en como inicialmente lo haces ya no es recomendado.

Saludos.
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #8 (permalink)  
Antiguo 27/07/2008, 16:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Hola, que tal? muchas gracias por verlo y ayudarme, pero sigue sin funcionar. Le cambié los dos códigos que me dijo, pero, nada, ahora ni siquiera me lleva a la página de "muchas gracias por recomendarnos (el php), sino que queda una página en blanco que pone: Content-type: text/html.
Creo que además de haberle cambiado eso habría que poner el codigo de yahoo que me dice q es imprescindible:
Código:
/usr/sbin/sendmail
, aunque la verdad es que ya estoy muy perdida, php aún lo manejo regular y en su día lo probé en otro servidor y funcionaba bien, pero en este no quiere.
Saludos.
  #9 (permalink)  
Antiguo 27/07/2008, 17:25
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Problema con formulario "Recomiendanos"

hola
primero, debes de tener un servidor que tenga instalado un servidor smtp para envio de mails, ahora, dices que es yahoo, entonces si deben de tenerlo, pero las directivas como 'mail' están restringidas en algunos casos, ya que muchas personas ocupan esas config para enviar spam, así que ese puede ser el problema..
segundo, debes de revisar tu correo no deseado, a veces las direcciones que usamos para envio, no están cachadas en los servidores pop y hacen que se vaya al no deseado.



te coloco un código que utilizo para enviar mail' s


<?php


// a quien va el correo
$destinatario ="[email protected]"; // aquí puedes poner tu dirección pra que cheques que te llega

$asunto = "Prueba de correo en PHP"; // asunto del correo

$cuerpo = "<div><b>Mi nombre es: </b> Pablo <br> <b><br> hoy es:</b> ".date("d/m/Y"). "<br> <br><br> debe de llegar este correo</div>";

//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";


//dirección del remitente
$headers .= "From: Norberto Pablo <"."[email protected]"." > \r\n"; // aqui quien es el que envía el correo

//direcciones que recibirán copia oculta
//$headers .= "Bcc: [email protected]\r\n";

mail($destinatario,$asunto,$cuerpo,$headers);

?>
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #10 (permalink)  
Antiguo 27/07/2008, 17:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Muchas gracias, ya mañana a primera hora lo pruebo y les cuento que tal.
El servidor si tiene instalado el envio de mails por php, aunque los tiene limitados para evitar el spam.
Ya configuré el correo del servidor y todo, pero me dice que debo colocar el código
Código:
 /usr/sbin/sendmail
por algun lado y me pone de ejemplo lo siguiente
Código:
:#!/usr/bin/perl
print "Content-type: text/html\n\n";

$title='mail test';
$to='MAIL ADDRESS TO SEND TO';
$from= '[email protected]';
$subject='Using Sendmail';

open(MAIL, "|/usr/sbin/sendmail -t");

## Mail Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
## Mail Body
print MAIL "This is a test message from Yahoo! \n";

close(MAIL);

print "<html><head><title>$title<
/title></head>\n<body>\n\n";

## START HTML content
print "<h1>$title</h1>\n";
print "<p>A message has been sent from $from to $to";
## END HTML CONTENT
print "\n\n</body></html>";
pero he intentado combinarlo con el código que yo ya tenia (para no modificar demasiado el recomiendanos.html y liarme más de la cuenta) más los consejos que me habeis dado, y no hay forma, es q la verdad que aún no manejo bien el php, y no sé cual es mi error ni donde tengo que colocar exactamente lo que me dice el servidor yahoo en su ejemplo.
Un saludo!
  #11 (permalink)  
Antiguo 27/07/2008, 18:01
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Problema con formulario "Recomiendanos"

ok, haz una prueba con el código que colocastes, solo sustituye los campos a ver si lo envia.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #12 (permalink)  
Antiguo 28/07/2008, 03:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

He probado el código, pero una pregunta (aunque sé que puede ser un poco tonta) donde pongo
Código:
<?php
y
Código:
?>
porque lo he probado varias veces y no funciona y me extraña
  #13 (permalink)  
Antiguo 28/07/2008, 05:23
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Respuesta: Problema con formulario "Recomiendanos"

No funciona porque el ejemplo que te han pasado no es de PHP sino de PERL. :(
  #14 (permalink)  
Antiguo 28/07/2008, 05:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Cita:
Iniciado por juanfuentes Ver Mensaje
No funciona porque el ejemplo que te han pasado no es de PHP sino de PERL. :(
Y entonces cómo debo hacerlo?
  #15 (permalink)  
Antiguo 28/07/2008, 07:48
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Respuesta: Problema con formulario "Recomiendanos"

Prueba a asignar las variables $to_email_address y $from_email_address el valor "[email protected]". Así te asegurarías que el problema no es de estas variables, sino del envío de correo.

Comprueba también las variables de configuración "sendmail_from" y la más importante "sendmail_path". Esta última debería contener la ruta al programa sendmail: "/usr/sbin/sendmail -t"
  #16 (permalink)  
Antiguo 28/07/2008, 08:06
 
Fecha de Ingreso: junio-2008
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

podes probar con esto tambien.. no necesitas sendmail.
envia mails atraves de un smtp que especifiques

http://phpmailer.codeworxtech.com/
  #17 (permalink)  
Antiguo 10/08/2008, 00:52
 
Fecha de Ingreso: julio-2008
Ubicación: Isla Clarion; México
Mensajes: 11
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

HAHA sigo pecando de tonto

Código PHP:
mail($to_email_address$subject$message
"From: ".$from_email_address); 
Por que no lo cambias por esta linea

Código PHP:
mail($to_email_address$subject$message$from_email_address); 
Así tal cual.... a ver pruebale.... lo probe como lo tenías y efectivamente no funcionaba pero al arreglarle eso me funcionó, ojalá aun te sirva hahaha

Saludos!
  #18 (permalink)  
Antiguo 10/08/2008, 11:41
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con formulario "Recomiendanos"

Cita:
Iniciado por Gerifaltus Ver Mensaje
Tal vez el problema radique aquí:
Código PHP:
if (( $to_email_address) && ( $from_email_address)) { 
 
mail($to_email_address$subject$message
"From: ".$from_email_address); 
echo 
"Tu Solicitud se ha Enviado Correctamente¡"

Con un if compruebas que las variables $to_email_address y $from_email_address contengan una dirección de correo, pero, creo que deberias usar $_GET ó $_POST según sea la forma en como pasas los valores a través del formulario, GET ó POST, es decir, el codigo anterior puede quedar así:

Código PHP:
if (isset($_POST['to_email_address']) && isset($_POST['$from_email_address']))

$to_email_address $_POST['to_email_address'];
$message $_POST['mensaje'];
$from_email_address $_POST['from_email_address'];
 
mail($to_email_address$subject$message
"From: ".$from_email_address); 
echo 
"Tu Solicitud se ha Enviado Correctamente¡"

Por cierto, revisé el codigo desde firefox y sigue estando "od=POST" en lugar de method="POST".

P.D. En php debes usar $_GET[''] para trabajar con las variables que pasas por get, y $_POST[] para cuando usas post en el formulario. La forma en como inicialmente lo haces ya no es recomendado.

Saludos.
Es cierto, puede que el problema está allí. @Pilar80, revisa esta página para leer algo acerca del Uso de Register Globals.

Ese código que te dió Cerifaltus debe funcionar bien, pero hay un pequeño error por el cuál no se cumple la condición:

DICE:
if (isset($_POST['to_email_address']) && isset($_POST['$from_email_address']))


DEBE DECIR:
if (isset($_POST['to_email_address']) && isset($_POST['from_email_address']))

Igual con las demás variables que incluyes en tu código y que se supone vienen del formulario:

Código PHP:
<?php
$nombresitio 
"www.artencordoba.com"
$contacto "[email protected]"
$recomienda "Recomienda a un Amigo: www.artencordoba.com"
$gracias "Gracias."
?><html>
<head>
<?php

// Recojemos las datos del formulario
$nameX stripslashes($_POST['name']); 
$to_nameX stripslashes($_POST['to_name']); 
$to_email_address $_POST['to_email_address'];
$from_email_address $_POST['from_email_address']

$url "http://www.artencordoba.com"
$message "Hola $to_nameX, Te recomiendo que ingreses en la dirección $url, en la cual podrás encontrar
todo lo relacionado con el Arte, la Cultura y el Turismo de la ciudad de Córdoba. "

$subject "$to_nameX Te recomiendo esta web"

if (( 
$to_email_address) && ( $from_email_address)) { 

mail($to_email_address$subject$message
"From: ".$from_email_address); 
echo 
"Tu Solicitud se ha Enviado Correctamente¡"
} else { 

echo 
"No pudo ser enviada tu Solicitud¡"

$administrador .= "------Recomienda a un Amigo------n"
$administrador .= "Nombre del Emisor: $namen"
$administrador .= "Correo del Emisor: $from_email_addressn"
$administrador .= "Nombre del Resector: $to_namen"
$administrador .= "Correo del Resector: $to_email_addressn"
mail("$contacto""$nombresitio"$administrador"From: $recomienda"); 
?><title>Recomendar este sitio</title>
Un saludo,
  #19 (permalink)  
Antiguo 11/08/2008, 10:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 91
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

Hola, muchas gracias por contestar. Lo he probado y sigue sin funcionar.La verdad es que ya no sé que hacer y estoy muy agobiada porque veo en las estadisticas que hay usuarios que entran e intentarán usarlo, pero no sé como solucionarlo.
Más arriba me dijeron que no funciona porque el ejemplo que me pusieron en yahoo no es php sino perl, pero no tengo ni idea de ese código cómo funciona ni qué debo hacer. Y creo que esa es la razón, porque en yahoo decia que habia que poner ese código que dije.
Pero en los cambios últimos ya ni siquiera pasa al php que debia decir: muchas gracias por recomendarnos.

Si alguien sabe qué debo cambiar le agradezco que me lo diga, o si debe ser con código perl me diga como es. En el servidor yahoo me decia q debo poner en algun sitio "/usr/sbin/sendmail -t" y la verdad es que como no sé mucho de formularios y ya estoy hecha un lío, no tengo ni idea!!
El codigo del html: "Recomiendanos.html" lo podeis ver en http://www.artencordoba.com/Recomiendanos.html y el de recomendar.php en
http://www.artencordoba.com/recomendar.php

Ya no sé que hacer!! Muchas gracias por intentar ayudar
  #20 (permalink)  
Antiguo 12/08/2008, 04:46
 
Fecha de Ingreso: julio-2008
Ubicación: Isla Clarion; México
Mensajes: 11
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con formulario "Recomiendanos"

cambia de proovedor o lee mas de PEARL! o contrata algun hosting ya sea gratuito o de pago PHP e insertalo por ahí como i frame o algo... ojalá te ayude
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 00:02.