Hola
Alguien que me enseñe a hacer un formulario de contacto. Lo he intentado mil veces y no hay manera de que me salga, hasta lo intenté en flash y nada.
Espero que alguien me ayude, ya no se que hacer.
saludos.
| ||||
Este es el codigo php (enviar.php, por ej): <? $nombre = $_POST['nombre']; $comentario = $_POST['comentario']; $de = $_POST['email']; mail('[email protected]',$nombre,$comentario,"Fro m:$de"\r\n]; echo "<b>$nombre</b>, tu mail se ha enviado. Gracias" ?> Y este el q contiene el formulario (form.html, por ej): <form action="enviar.php" method="post"> Nombre: <input type="text" size="15" name="nombre"><br> E-Mail: <input type="text" size="15" name="email"><br> Comentario: <textarea cols="30" rows="4" name="comentario"> </form> Espero q hayas entendido, sino pregunta otra vez ![]() Última edición por leoj90; 18/08/2005 a las 22:38 |
| ||||
Hola Si, el código php, pero eso en donde se pone?? La verdad es que no tengo la menor idea de como hacerlo. Me he descargado varias tipos de formularios y todos son tan diferentes que no tengo una base de como son. Eso en que parte se coloca del código? En que tipo de hoja se hace, html, php directamente, cual?? Gracias y perdona la ignorancia. saludos.
__________________ La vida es bella. |
| ||||
el codigo php va en..pues un archivo php (enviar.php en el ejemplo que puso leoj90) guardas ese como php y el otro codigo(form.html) como html y los pones en el mismo directorio y ya claro que tu hosting debe contar con php para que funcione |
| ||||
Bueno te explico cada linea q es lo q hace: Codigo php (enviar.php en el ejemplo:) <? $nombre = $_POST['nombre']; /*Aqui recibes el nombre de quien te envia el mail*/ $comentario = $_POST['comentario']; /*Aqui recibes el comentario*/ $de = $_POST['email']; /*Aqui te dice el mail de quien lo envia*/ mail('[email protected]',$nombre,$comentario,"Fro m:$de"\r\n]; /*Aqui escribes tu mail o el mail que reciba este mensaje*/ echo "<b>$nombre</b>, tu mail se ha enviado. Gracias" /*Aqui agradeces con un mensaje, la variable $nombre hace que se escriba el nombre de quien manda el mail*/ ?> Y ya en tu archivo .html configuras dentro de los inputs, el atributo 'name' con valor al que pusiste en el archivo php entre $_POST['']". POr ejemplo: en el campo Nombre el input deberia estar algo asi: <input type="text" name="nombre" size="25">, ya que "nombre" es lo que esta entre ['.......']. Espero q hayas entendido, sino vuelve a preguntar ![]() |
| |||
Con este ejemplo de pronto lo entiendes mas facil: El archivo a crear se llamaria envia_form_php.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Mándanos tus comentarios</title> </head> <body bgcolor="#cccc66" text="#003300" link="#006060" vlink="#006060"> <? if (!$HTTP_POST_VARS){ ?> <form action="envia_form_php.php" method=post> Nombre: <input type=text name="nombre" size=16> <br> Email: <input type=text name=email size=16> <br> Comentarios: <textarea name=coment cols=32 rows=6></textarea> <br> <input type=submit value="Enviar"> </form> <? }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 .= "Comentarios: " . $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> Con este entendi yo!! je!! chaolin!! |
| |||
Eso si, tienes que tener una cuenta de hosting de pago, ke soporte PHP. Regularmente las empresas de Free Hosting tienen desactivada la funcion Mail() que es la obviamente manda el email , por eso del spam. Asi que mejo si tienes una cuenta hosting de pago!! Chau! |
| ||||
![]() Mmmm, pues $HTTP_VARS_POST ya no se usan, se usa$ _POST y si es asi q se hace en un solo archivo como dices, en el form la action debe ser: action="<?=$PHP_SELF?>" porq el codigo php esta en el mismo lugar q el formulario, Última edición por leoj90; 19/08/2005 a las 01:17 |
| ||||
Mi hosting soporta php, de hecho hace poco monté un foro y sin problema. Lo que no se si es necesario activar algo además, para poder activar el formulario de contacto que uno suba. Voy a intentarlo con los ejemplos que me han puesto, cualquier cosa les digo. Muchas gracias a todos. saludos.
__________________ La vida es bella. |
| |||
Exacto, no es necesario activar nada para enviar email con el formulario de contacto, solo que si esta desactivada esta funcion que permite correr el mail(), no te vas a dar cuenta pq regularmente el script corre y no muestra problemas, solo que no manda el email, asi que si lo ejecutas, y no te llego ningun email , debe ser que de pronto tenga la funcion mail () desactivada... pero si tu pagas por tu host NO PROB!!! Y leoj90 tiene toda la razon, en la parte del script, mas exactamente en esta <form action="envia_form_php.php" method=post>, ya no se pone el nombre de la pagina sino que se reemplaza por esta funcioncita php action="<?=$PHP_SELF?>" la otra sino se, no he podido confirmarla, pero me imagino ke tambien ha de tener razon.. Bueno saludos!! y que bueno que todos los dias se aprenda algo nuevo.! |
| ||||
Haber, el valor de $_SERVER['PHP_SELF'] es el mismo del archivo que se esta ejecutando, la razón de usar eso en vez del nombre del archivo es por si en un futuro cambias el nombre del archivo (o eso creo ![]() Lo de $HTTP_POST_VARS[''] se explica aqui Y aqui esta otra cosa al respecto http://mx2.php.net/manual/es/security.globals.php ![]()
__________________ Keep f***ing learning Ask for f***ing help. Use f***ing spell check. Think about all the f***ing possibilities. |
| ||||
como hago ahora ? Yo trabajo en html, como puedo insertar en una web hecha en html este codigo php de la respuesta que dice gracias. Para mi caso me conviene usar el ejemplo primero de un archivo html y otro php. Tambien se me habia ocurrido que en vez de pasar a otra web en php, luego de pulsar el boton enviar me abra una ventana javascript pequeña (pop-up) y alli se vea el agradecimiento de esa web en php. como inserto el codigo en la acción enviar??? se puede?
__________________ ________________________________________________ ROMELALGO despeja la bruma, no estas sólo... MI SPACE mi website arq-design.net Cotizaciones a:[email protected] |
| |||
Hola a todos Me parece muy interesantes este post y sobre todo la facilidad con que lo habeis explicado todo, con ejemplos y demás. En algunos otros post se echa de menos esta claridad en las explicaciones. Al respecto de todo lo que comentais me han asaltado dos dudas: 1. Que ventajas tiene usar un formulario en PHP respecto a uno en html, simplemente con un POST y un mailto en la dirección. La maquetacion al recibir el correo?. 2. Si se quiere validar que los campos esten rellenados antes d dejar que el usuario envie el formulario, ¿se hace igual, con un javascript de validación, por ejemplo, o hay que utilizar otros métodos?. Venga, un saludo a todos |
| |||
Al igual que a Dig me ha parecido muy interesante el POST. Sobre las ventajas o inconvenientes del uso de PHP o HTML te diré que no hay uno mejor que otro, son dos cosas distintas. HTML no es un lenguaje de programación sino una forma de presentar información legible por los navegadores y PHP sería una "maquina" que genera documentos HTML. Para el caso concreto de enviar formualrios te diré que depende, si sólo quieres que se envia via mail con tu solución es más que posible, si quieres que se añada a una base, se confirma, se almacene, se enviens varias copias, etc, deberías usar PHP. Ya para termianar decir que la actio de form si la dejas en blanco ("") funciona perfectamente. Desde Pamplona para el mundo; Spielbeg |
| ||||
Si usas un mailto: se va a abrir el gestor de correo (outllok o el que tengan instalado), con php el encargado de enviar el mail es php(mas bien el servidor smtp, php solo "le pasa" el mensaje al smtp), asi si uno no tiene un gestor de correo de todas formas puede enviar el mail y también se evita lo gorroso que es que se te habra un programa mientras navegas. La validación del correo lo puedes hacer con javascript (lado cliente) o con php (lado servidor). Aqui les paso un script de envio de mail un poquillo mejorado. Código PHP: ![]()
__________________ Keep f***ing learning Ask for f***ing help. Use f***ing spell check. Think about all the f***ing possibilities. |
| |||
Excelente DvD , bien por ese Dato!! ![]() ![]() ![]()
__________________ Directorio de negocios Hispanos y Latinos en USA |
| ||||
DVD me encanta tu script y he intentado usarlo pero me da este error Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /datos/home/galiciat/public_html/tintoreria/mail.php on line 46 Este es el script que uso despues de adaptarlo: mail.php Código PHP: |
| ||||
Cita:
Iniciado por arcanis DVD me encanta tu script y he intentado usarlo pero me da este error Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /datos/home/galiciat/public_html/tintoreria/mail.php on line 46 Este es el script que uso despues de adaptarlo: mail.php Código PHP: ![]() A ver arcanis, el fallo es el siguiente(creo), esa linea deberia ser: Código PHP: ![]()
__________________ "zankius veri mach" a todos los que me habeis ayudado. carteles para inmobiliarias || alquiler de coches |
| ||||
Gracias funciona bien como tu dijiste, aunque he tenido que limpiar mas codigo ahora funciona perfectamente o por lo menos a mi me funciona, lo pongo por si alguien quiere usarlo. mail.php Código PHP: |
| ||||
Cita: Relee el ultimo mensaje de arcanis en el que se encuentra el codigo, debes poner
Iniciado por fullmental disculpen mi novates pero que pongo en el action= del form en el script de DvD AdN ????? Código PHP: Saludos.
__________________ "zankius veri mach" a todos los que me habeis ayudado. carteles para inmobiliarias || alquiler de coches |
| ||||
Despues de haber probado con mas calma el script me he encontrado con un fallito que no se como solucionarlo, el fallo es que despues de haber escrito algo mal la pagina se queda en blanco no te da la opcion de corregir lo que esta mal, si alguien pudiera echar una manito se lo agradeceria. |
| |||
Si quieren validar los campos de un formulario, les recomiendo un script que encontre muy util, y que pueden implementar en cualquier formulario que deseen, ademas valida formatos de email y campos requeridos he aqui el codigo: Verifica que algunos o todos los campos de un formulario hayan sido rellenados. Si encuentra un campo llamado email verifica, además, que la dirección insertada tenga una estructura correcta de email. No necesita configuración, salvo añadir un * (asterisco) al nombre de aquellos campos que queramos que sean obligados. Los que no lleven el * en el nombre no serán revisados. Ejemplo: <input type="text" name="Nombre*"> (este campo será obligado) <input type="text" name="telefono"> (este campo NO será obligado) <script language="JavaScript"> function verificarFormu(cualo) { for(m=0;m<cualo.length;m++) { if(cualo.elements[m].name.charAt(cualo.elements[m].name.length-1) == "*") { if(cualo.elements[m].value=="") { alert("Debe poner un " + cualo.elements[m].name.substring(0,cualo.elements[m].name.length-1)) cualo.elements[m].focus() return false break; } if(cualo.elements[m].name==email" || cualo.elements[m].name=="email*") { pat=/^[\w\_\.çñ]{2,255}@[\w]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/ if(!pat.test(cualo.elements[m].value)) { alert("Introduzca un E-mail válido") cualo.elements[m].focus() return false } } } else { continue; } } } </script> Y al tag form se le añade <form name="form1" method="post" action="loquesea" onSubmit="return verificarFormu(this)"> |
| |||
El resto lo dejan a php, ya para enviar el correo pueden usar php como lo explican los muchachos anteriormente, que por cierto es algo muy completo. |