Foros del Web » Programando para Internet » PHP »

no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Estas en el tema de no me envia el formulario al email, porfavor, ayudad a un ignorante :( en el foro de PHP en Foros del Web. hola foreros del web, estoy intentando hacer una pequeña página con un formulario para que la gente se ponga en contacto conmigo, el problema es ...
  #1 (permalink)  
Antiguo 09/02/2010, 17:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
no me envia el formulario al email, porfavor, ayudad a un ignorante :(

hola foreros del web, estoy intentando hacer una pequeña página con un formulario para que la gente se ponga en contacto conmigo, el problema es que, como ya he dicho por aquí, soy novato y autodidacta en todo esto... ahora estoy intentando aprender algo de javascript, y por el momento de php no tengo ni idea. Pero encontré un código por el cual (se supone) se crea un formulario y envía los datos a una dirección mail, pero no me funciona. Lo ha subido al hosting de miarroba y he conectado la opción para que acepte php´s, por lo que supongo que no es problema del servidor sino del código.
Por favor, ¿me podeis decir donde está el fallo?

aqui pongo el código:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>pagina de contacto</title>
<link rel="stylesheet" href="estilosjose.css" type="text/css">
</head>
<body>
<?
if (!$HTTP_POST_VARS){
?>
<h4>
<form action="index.html" method=post>
Nombre:<br><input type=text name="nombre" size=16>
<br>
Email:<br><input type=text name=email size=16>
<br>
Comentario:<br><textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form></h4>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentario: " . $HTTP_POST_VARS["coment"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</body>
</html>


Otro porblema que tengo es que este formulario aparece en una capa dentro del doc html (lo envío con js), y si no le cambio el 'form action="enviarformulario.html" por 'form action="index.html" se me va del html a una pagina fea del formulario, y no querría que sucediera eso. ¿se puede hacer cómo lo he hecho? ¿cambiando form action=formulariophp por form action=documentohtml?
Perdonad mi ignorancia, prometo que en cuanto termine con java (acabo de empezar) empiezo con php...

Gracias por anticipado.
  #2 (permalink)  
Antiguo 09/02/2010, 17:18
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Lo que tienes que empezar es a leer el manual: www.php.net
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>pagina de contacto</title>
  5. <link rel="stylesheet" href="estilosjose.css" type="text/css">
  6. </head>
  7. <body>
  8. <?
  9. if ($_GET['enviando']!="si"){
  10. ?>
  11. <h3>Gracias por ponerte en contacto conmigo,</h3>
  12. <h4>
  13. <form action="?enviando=si" method=post>
  14. Nombre:<br><input type=text name="nombre" size=16>
  15. <br>
  16. Email:<br><input type=text name=email size=16>
  17. <br>
  18. Comentario:<br><textarea name=coment cols=32 rows=6></textarea>
  19. <br>
  20. <input type=submit value="Enviar">
  21. </form></h4>
  22. <?
  23. }else{
  24. //Estoy recibiendo el formulario, compongo el cuerpo
  25. $cuerpo = "Formulario enviado\n";
  26. $cuerpo .= "Nombre: " . $_POST["nombre"] . "\n";
  27. $cuerpo .= "Email: " . $_POST["email"] . "\n";
  28. $cuerpo .= "Comentario: " . $_POST["coment"] . "\n";
  29.  
  30. //mando el correo...
  31. mail("[email protected]","Formulario recibido",$cuerpo);
  32.  
  33. //doy las gracias por el envío
  34. echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
  35. }
  36. ?>
  37. <h3>En un plazo m&aacute;ximo de dos d&iacute;as tendr&aacute;s una respuesta</h3>
  38. </body>
  39. </html>
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 09/02/2010, 18:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

muchas gracias chulosoy... pero no me funciona, no se porqué, le he dado mil vueltas, y he probado intentando cambiar las pocas cosas que creo que entiendo... pero es que de php estoy pez, intuyo algo pero no entiendo nada

de inglés entiendo sólo un poco más que de php, muchas gracias de verdad por el enlace pero tampoco sabría por donde cogerlo

eso si, en cuanto empiece a enterarme de cómo funciona javascript, empiezo a intentarlo con php, aunque por lo que he visto es bastante más duro...


¿porqué no funcionan estos códigos?
¿qué hay que corregir?

se que no mola nada pedir que te corrijan códigos, es como mandar a otro hacer el trabajo duro, pero es que doy vueltas y no me entero, por favor, ayuda...
  #4 (permalink)  
Antiguo 09/02/2010, 19:03
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Te devuelve algun error. Lo podes poner sabemos que clase de error tenes.
Para usar la funcion mail() tenes que configuarar el php.
  #5 (permalink)  
Antiguo 09/02/2010, 19:06
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

creo que Miarroba no tiene SMTP, prueba usando el de gmail.
  #6 (permalink)  
Antiguo 09/02/2010, 20:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Con el codigo que me puso chulosoy me salta el formulario y me lleva a este error:
Parse error: syntax error, unexpected T_IF in /home/webcindario/j/o/josefotomoreno/enviarformulario.php on line 9

supongo que será la declaración de variable... no se... pero es el que más me interesa porque se queda todo en la capa que lo necesito.

en el que ponía yo me pasa dos cosas:
si dejo el form action=index.html para que se me mantenga en mi página y no me salte a otra sólo con el formulario, parece que me lo acepta, me vuelva a la página html, y no me envía nada
si en el action pongo =enviarformulario.php me da este error

Warning: mail() has been disabled for security reasons in /home/webcindario/j/o/josefotomoreno/enviarformulario.php on line 31

pero me abre la pagina del formulario al completo y para volver a la web tengo que darle retroceso (o similar)

como la line 31 es la que llama al email empiezo a pensar que es por lo que dice chulizo, que miarroba no tiene smtp, pero creo que leí, cuando me registraba, que si que me daban envío de emails...

no me cansaré de agradeceros la ayuda, de verdad...
  #7 (permalink)  
Antiguo 09/02/2010, 21:20
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

En el codigo que te dio chulosoy no me da ningun error.
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>pagina de contacto</title>
<link rel="stylesheet" href="estilosjose.css" type="text/css">
</head>
<body>
<?
if ($_GET['enviando']!="si"){
?>
<h3>Gracias por ponerte en contacto conmigo,</h3>
<h4>
<form action="?enviando=si" method=post>
Nombre:<br><input type=text name="nombre" size=16>
<br>
Email:<br><input type=text name=email size=16>
<br>
Comentario:<br><textarea name=coment cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form></h4>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo "Formulario enviado\n";
$cuerpo .= "Nombre: " $_POST["nombre"] . "\n";
$cuerpo .= "Email: " $_POST["email"] . "\n";
$cuerpo .= "Comentario: " $_POST["coment"] . "\n";
 
//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);
 
//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
<h3>En un plazo m&aacute;ximo de dos d&iacute;as tendr&aacute;s una respuesta</h3>
</body>
</html>
En cuanto al otro error te dice que tenes la funcion mail() desactivada.

te recomiendo que uses la clase phpmailer con gmail. Que es facil de usar y solo deberias remplarzar la parte en la que se enviar el mail. Osea el contenidos del else para que te funciones..
Este link te puede ayudar.
http://blog.unijimpe.net/enviar-email-con-php-y-gmail/

Espero q te ayude...
Suerte
  #8 (permalink)  
Antiguo 10/02/2010, 15:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 26
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

MUCHAS GRACIAS A TODOS.

es verdad, el código de chulosoy ya no me da errores, algo estaría haciendo mal ... pero tampoco envía nada, supongo que será por lo que dice chulifo, que no tengo smtp...

El caso es que no me di cuenta, y el código que puse al principio si funciona, pero me envía el correo como spam... sólo hay que configurar el gmail para que no lo haga y arreglao.
Pero sigue sin ser buen código porque es el del action=enviarformulario.php y me lleva a otra página nueva y eso no puede ser



El caso es que con action=index.html me lo hace como quiero pero no me envía nada. ¿porqué?

como me habeis puesto deberes ;) , me pongo con ellos, sobre todo con los de luis, a ver si aprendo a entender algo y consigo que el código de chulosoy me envíe algo con la función phpmailer... eso sería la caña.

Otra vez, muchas gracias a todos.


Muchas gracias a todos, de verdad.
  #9 (permalink)  
Antiguo 10/02/2010, 20:36
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Hola yo tengo el mismo problema que el correo llega a spam, ya he probado varias soluciones de cabecera y sigue igual.

El codigo del mail no es necesario llamarlo desde otro archivo php, lo puedes invocar directamente.
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.
  #10 (permalink)  
Antiguo 10/02/2010, 20:49
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Gracias por el enlace luis010182 era lo que estaba buscando....
  #11 (permalink)  
Antiguo 11/02/2010, 13:25
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: no me envia el formulario al email, porfavor, ayudad a un ignorante :(

Hola,
anda buscando algo similar para partir a lo que quiero hacer haber si me ayudan a modificar el codigo
la verdad es que no quiero que sea un formulario de saludos si no que la persona pueda autoenviarse un correo en donde adjunte un informe que genera mi pagina
como puedo poner en la funcion mail en donde va el mail
mail("xx@xxxx","Formulario recibido",$cuerpo);
lo que se escribe en el campo Email?
$cuerpo .= "Email: " . $_POST["email"] . "\n";

Etiquetas: email, formulario
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 13:33.