Foros del Web » Programando para Internet » PHP »

formulario para enviar por email???

Estas en el tema de formulario para enviar por email??? en el foro de PHP en Foros del Web. necesito enviar los datos de un formulario a un email, i no me funciona. Este es mi codigo: compramos.htm------- <html><body> <table align="center"> <script language="Javascript"> function ...
  #1 (permalink)  
Antiguo 05/04/2004, 04:42
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
formulario para enviar por email???

necesito enviar los datos de un formulario a un email, i no me funciona.
Este es mi codigo:
compramos.htm-------
<html><body>
<table align="center">
<script language="Javascript">
function comprobar_datos() {
var Nombre= document.Compramos.Nombre.value;
var Telefono= document.Compramos.Telefono.value;
if ((Nombre.length == 0) || (Telefono.length == 0)) {
alert ('Debes introducir al menos los campos obligatorios');
document.Compramos.Nombre.focus(); }
else {
//Comprobar que el telefono tiene 9 numeros
if ( (Telefono.length != 9) || isNaN(Telefono) ) {
alert('El teléfono debe tener una longitud de 9 caracteres numéricos.');
document.Compramos.Telefono.focus(); }
else {
alert("Formulario enviado con exito");
window.open("enviar_email.php");
}
}
}
</script>
<form name="Compramos" method="post" action="compramos.htm" enctype="text/plain">
<tr>
<td><font size="-4" color="red">Nombre y Apellidos</font></td>
<td><font size="-4">Direcci&oacute;n</font></td>
</tr>
<tr>
<td><input type="text" name="Nombre" size="40"></td>
<td><input type="text" name="Direccion" size="40"></td>
</tr>

<tr>
<td><font size="-4" color="red">Telefono de contacto</font></td>
<td><font size="-4">E-Mail</font></td>
</tr>

<tr>
<td><input type="text" name="Telefono" size="20"></td>
<td><input type="text" name="E-mail" size="30"></td>
</tr>
<tr>
<td><font size="2"><b>Datos del local</b></font></td>
</tr>
<tr>
<td><font size="-4">Nombre</font></td>
</tr>
<tr>
<td><input type="text" name="NombreLocal"></td>
</tr>
<tr>
<td><font size="-4">Caracter&iacute;sticas del local</font></td>
</tr>
<tr>
<td colspan="2"><textarea name="Caracteristicas" rows="5" cols="50"></textarea></td>
</tr>
<tr>
<td colspan="2"><font size="-4" color="red">**Los campos marcados en rojo son obligatorios</font></td>
</tr>
<tr>
<td><input type="button" value="Enviar" onclick="javascript:comprobar_datos();"></td>
<td><input type="reset" value="Borrar"></td>
</tr>
</form></table></body></html>

------enviar_email.php-----
<html>
<body>
<?php
$destinatario="[email protected]"; //cuenta a la que se envia el formulario
$Nombre=$_POST["Nombre"];
$Direccion=$_POST["Direccion"];
$Telefono=$_POST["Telefono"];
$Correo=$_POST["E-mail"];
$Comentarios=$_POST["Comentarios"];
$subject="Formulario de busqueda"; //asunto
$cuerpo=
"Este mensaje fue enviado por:\n" .
$Nombre."\n" .
$Direccion."\n" .
$Telefono."\n" .
$Correo."\n" .
"------------------------- COMENTARIO -------------------------\n\n" .
$Comentarios .
"\n\n------------------------------------------------------------\n" ;
mail($destinatario,$subject,$cuerpo);
?>
<script language="Javascript">
alert("Formulario enviado con exito");
</script>
</body>
</html>
¿Alguien me puede decir que falla?
  #2 (permalink)  
Antiguo 05/04/2004, 10:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y te dá algún error? .. has comprobado si recives tus variables en la parte del script que se genera el e-mail para enviarlo por la función mail() ?

Usas un servicio de hosting o tu PC como servidor? .. dispones de servidor SMTP en tu servidor y PHP configurado para usarlo (php.ini sección directiva: SMTP = ....)

Y .. a simple vista te faltarían cabeceras HTTP para indicar el FROM: de tu e-mail .. y otros detalles que te irá mejor para que tu e-mail llegue a su destinatario pasando sobretodo filtros de anti-spam severos ...

más info en:
www.php.net/mail

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 05/04/2004, 13:49
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
error

Me da error en la linea 44, me dice que mail no esta definido en el archivo *.htm, y no me muestra las variables en el archivo de enviar el email.
Ahora estoy usando mi ordenador como servidor mientras acabo la web, pero ya tengo contratado un servidor de hosting. Pero lo que estoy buscando en mi ordenador es el archivo php.ini i no lo encuentro, asi que me podias decir que se pone en el?
Muchas gracias.
  #4 (permalink)  
Antiguo 05/04/2004, 14:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las pruebas para tu servidor de tu "casa" debes tener un servidor SMTP en tu PC instalado ...

Si haces:

Código PHP:
<?
phpinfo
();
?>
ahí veras en el primer bloque de información que dá esa función donde tienes el php.ini que estás usando (si usas windows . .normalmente en c:\windows .. depende de la versión de windows ..)

Tu formulario de
<form name="Compramos" method="post" action="compramos.htm" enctype="text/plain">

debe apuntar el action hacia tu enviar_email.php que será el que va a procesar el envio del e-mail


Si pones el error exacto que te dá PHP sería lo ideal ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 05/04/2004, 14:41
Avatar de oenriqueg  
Fecha de Ingreso: noviembre-2003
Ubicación: Ciudad de México
Mensajes: 485
Antigüedad: 20 años, 5 meses
Puntos: 1
pues yo acabo de probar tu enviar_mail.php y funciona bien, (lo unico es que todavia no me llega el correo :S yo uso un server gratuito lycos.es, y ahi he probado antes y si funciona)

Nos vemoX...
__________________
bytes.
  #6 (permalink)  
Antiguo 05/04/2004, 14:45
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
puedes colgar el código para utilizarlo?, no tengo mucha idea de php, pero podría utilizarlo
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #7 (permalink)  
Antiguo 05/04/2004, 15:19
 
Fecha de Ingreso: abril-2004
Mensajes: 69
Antigüedad: 20 años
Puntos: 0
Cluster, varias cosas:
-¿Donde tengo que poner el codigo php que me indicas para comprobar donde tengo el php.ini?
-En el action del form llamo a la misma pagina, porque quiero que se compruebe que se han introducido los campos obligatorios, y despues ejecuta la nueva pagina que envia el mail, pero a mi no me envia el mail.
-El error que me da, es nada mas ejecutar la pagina compramos.htm, Error en tiempo de ejecucion, ¿desea depurarlo? linea:44, error de sintaxis. Me sale antes de que se muestre el formulario.

Muchas gracias a todos los que me estan ayudadno.

oenriqueg ami no me mada el mail, y no me muestra el resultado de las variables del codigo enviar_mail.php
Sette: El codigo esta en la pregunta inicial
  #8 (permalink)  
Antiguo 05/04/2004, 21:16
Avatar de oenriqueg  
Fecha de Ingreso: noviembre-2003
Ubicación: Ciudad de México
Mensajes: 485
Antigüedad: 20 años, 5 meses
Puntos: 1
mm, pero ese error no tiene nada que ver con php, bueno eso creo yo, mira la verdad es que tu javascript se supone que chekea que esten todos los campos llenados, entonces el action de tu form no debe de dar a la misma página de este form, debe apuntar a una que lo procese y reciba las variables de tu form.
__________________
bytes.
  #9 (permalink)  
Antiguo 06/04/2004, 06:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
-¿Donde tengo que poner el codigo php que me indicas para comprobar donde tengo el php.ini?
En PHP .. (vease un manual de PHP básico . en las FAQ's tienes) todo lo que está entre <? y ?> es código PHP .. debes guardarlo como nombre.php y dejarlo donde ejecutes tus páginas .html etc en tu servidor para llamarlo por el URL tipo: http://nose/nose.php

Cita:
-En el action del form llamo a la misma pagina, porque quiero que se compruebe que se han introducido los campos obligatorios, y despues ejecuta la nueva pagina que envia el mail, pero a mi no me envia el mail.
Tienes un enorrrrme lio .. En tu código usas una parte de validación que es JAVASCRIPT .. eso se valida en el -cliente- (en el navegador) y se hace antes de que envies tu formulario (antes de que salgan los datos hacia el servidor). Luego si quieres (altamente recomendable e inspresncindible ...) puedes validar esos datos a su vez en el servidor (en enviar_email.php).

Cita:
-El error que me da, es nada mas ejecutar la pagina compramos.htm, Error en tiempo de ejecucion, ¿desea depurarlo? linea:44, error de sintaxis. Me sale antes de que se muestre el formulario.
Debes aprender por lo menos a distinguir mensajes de error de JAVASCRIPT como es ese de los que puedan ser de "PHP" .. El problema que planteas es de Javascript no de PHP. Así que intenta resolver dicho problema en el foro adecuado (Javacript, ahí sólo coloca tu formulario .html)

Cuando tengas resuelto ese problema de javascript ahí si quieres vuelves a preguntar sobre la parte PHP si tienes problemas .. pero, cada cosa a su foro.

Si ves que te dá problemas esas validaciones javascript .. por lo menos quitaselas para ver si la parte PHP te funciona (te recuerdo que puedes validar esos datos y es altamente recomendable que o hagas también en PHP a pesar de que puedes hacerlo por temas de "usabilidad" en Javascript también (en el cliente-navegador ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 16:23.