422

Php: enviar formulario con mail ()

8 de Mayo de 2008 | Etiquetas: , , , | Categoría: Formularios, PHP

Bueno, inauguro mi pequeña biblioteca de código con una función que utilizo muuuuuuuy a menudo!
Es una forma ‘fácil y sencilla’ de enviar un formulario mediante php.. pego el código y voy explicando..

// dentro del if tendremos que colocar el formulario, cada input debe tener su 'name' para poder enviar el contenido.
 // al pulsar el botón enviar la acción del formulario se hará en la misma página, sin tener que llamar a una externa 

<?php if (!isset($_POST['email'])) { ?>

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<h1>Formulario de contacto</h1>
<p>Nombre:</p>
<p><input name="nombre" type="text" id="nombre" /></p>
<p>Teléfono:</p>
<p><input name="telefono" type="text" id="telefono" /></p>
<p>Email:</p>
<p><input name="email" type="text" id="email" /></p>
<p>Mensaje:</p>
<p><textarea name="mensaje" rows="6" cols="50" id="mensaje"></textarea></p>
<p><input type="reset" value="borrar" /> <input type="submit" value="enviar" /></p>
</form>

<?php }else{

// la variable mensaje almacena el contenido del email (los datos del formulario)
// la variable subject indica el asunto que tendrá nuestro mensaje
// y con la función mail enviamos el mensaje, los parámetros son: dirección de envio, asunto, mensaje, cabeceras (en mi caso pongo el remitente).
$msg= "";
$msg= "Mensaje del formulario de contacto de nnatali.com";
$msg.= "\nNombre: ". $_POST['nombre'];
$msg.= "\nEmail: ".$_POST['email'];
$msg.= "\nTelefono: ". $_POST['telefono'];
$msg.= "\nMensaje: \n".$_POST['mensaje'];
$remitente = $_POST['email'];
$subject = "Mensaje enviado desde nnatali.com por: ".$_POST['nombre'];
mail('unanatali@gmail.com', $subject, $msg, "FROM: $remitente");

?>
// una vez se haya enviado el email correctamente, aparecerá un texto personalizable para que el usuario sepa que ha llegado bien a su destino : )

<p><strong>Mensaje enviado.</strong><br />
Su mensaje se ha enviado correctamente, gracias por ponerse en contacto con nosotros</p>
<? } ?>

Y más o menos está explicadito.. si añades más campos al formulario acuérdate de añadirlos también en la variable $mensaje con su correspondiente ‘name’ :P
Para validarlo lo más fácil es:
1. Abrir el Dreamweaver.
2. Seleccionar el botón Submit.
3. Clicar en Inspector de etiquetas > Comportamientos.
(Si no lo tienes en el lateral, muestralo desde el menú Ventana > Inspector de etiquetas)
4. Seleccionar Validar formulario.
Y tachán! En un momentito lo tienes válidado para que no se te cuelen emails en blanco.
Hay formas mucho más curradas para validar y más especializadas, algún día las explicaré ^^

Twittea esto Guardalo en Delicious Compartelo en Facebook

Articulos relacionados

Esta entrada se escribió el Jueves, Mayo 8th, 2008 at 12:40 pm bajo la categoría Formularios, PHP. Puedes suscribirte a los comentarios de esta entrada gracias al RSS feed. Puedes comentar, o realizar un trackback desde tu web.

422 Responses to “Php: enviar formulario con mail ()”

Páginas: « 1 2 3 4 [5] Mostrar todos

  1. 401
    merry Says:

    hola
    oye lo unico que quiero hacer
    es algo como esto… estoy haciendo mis paginas y
    lo unico que quiero es k alguien comente sobre ella, ya hice
    este formulario ahora lo unico que quiero es que en la pagina
    se vean los comentarios que me estan escribiendo
    tal cual lo estoy haciendo con ustedes aki

    espero m puedan ayudar

  2. 402
    hugo Says:

    ola sirve la ayuda!

  3. 403
    Christian Says:

    Hola Nelly:

    Muy interesante tu blog, estuve probando tu código para enviar el formulario a mi correo, no me presenta ningún error pero simplemente nunca llega el correo al destinatario y he seguido paso a paso tus instrucciones el unico cambio que realice fue el del destinatario en la funcion mail():
    mail(‘christianmeza0047@gmail.com’, $subject, $msg, “FROM: $remitente”);
    Estoy usando para el servidor de aplicaciones y el servidor SMTP xampp pero si me ha funcionado para la mensajeria con otras aplicaciones web como por ejemplo osticket sin ningun problema.
    Te agradeceria me des una pista para encontrar el problema y corregirlo.
    Muchas gracias de antemano,
    Saludos

  4. 404
    jose joaquin Says:

    hola muy buenas e modificado tu formulario y lo que quiero es que me llege a mi email y una copia a la persona que me lo envia me podeis responder a mi email?
    gracias

  5. 405
    martha Says:

    mi curiosidad es si en colombia hay vacas?

  6. 406
    Oscar Arevalo Says:

    Te felicito por tu colaboracion, lo probe y funciona a las mil maravillas.
    Ya lo estoy aplicando en mi pagina de venta de e-books.

    Gracias de parte de mi esposa Adriana y de la mia Oscar

  7. 407
    Pablo Barrientos Says:

    gracias por el tip del codigo para envio de mails.

    tengo una duda, al hacer click en enviar se borra todo y queda unicamente el mensaje de “mensaje enviado”, como hago para que se borre todo el formulario y puedan seguir enviando los mensajes que quieran??

  8. 408
    Angel-Fost Says:

    Muy buen Blog, si señor!!

    En primer lugar felicitarte por la gran ayuda que estas ofreciendo a toda la gente. Y en segundo lugar, queria comentarte que no hay manera de conseguir hacer funcionar el formulario.

    Abro el Dreamweaver y creo una nueva pagina php, le meto tu codigo entero menos tus mensajes explicativos, luego modifico el mail para ser enviado, y luego voy a comportamientos para validar el formulario, aqui me dice que no hay nada por validar, asi que señalo todas las opciones como obligatorias, y al dar a aceptar, me dice:

    La realizacion de este cambio puede exigir el cambio del codigo bloqueado por una plantilla o traductor. Se omitirá el cambio.

    Por mucho que le de a aceptar, me vuelve con las mismas, no se valida NADA!!!

    Asi que lo he probado todo desde un principio a traves de una pagina html. Alli si que me deja validar el formulario, pero al abrirlo, rellenar el formulario y darle a enviar, me dice que la pagina no existe y no se envia nada….

    Con los dos metodos, cuando guardo el formulario, justo abajo de los recuadros me sale el mensaje de Enviado, cosa que solo deberia salir cuando se ha enviado correctamente…

    Algunos consejos basicos?? porque no consigo absolutamente nada… y me interesa, y mucho!!!!

    Gracias!

  9. 409
    nnatali Says:

    Hola Pablo!
    Pues si te das cuenta, al principio del código hay un if(), con ello lo que hacemos es que si NO recibimos la variable email (cosa que haremos si envían el formulario) muestre el formulario para que lo puedan rellenar, tú simplemente coloca el formulario fuera del if para que siempre se muestre y el código de recogida y envio de variables dentro del mismo if, pero quitando la exclamación ! para que lo ejecute en el caso de que SI reciba esa variable. No sé si me explico..
    Saludos!

  10. 410
    nnatali Says:

    Hola Angel!
    Te aconsejo echarle un vistazo a este post: Cómo crear un formulario para mi página web.
    Tienes también varios ejemplos con posibles errores, pueden ser varias cosas por lo que prefiero que revises que no se te haya pasado nada de eso antes de ponernos a mirarlo más detenidamente. Ten en cuenta también, que cuando pegas el código en dreamweaver tienes que hacer desde la vista código y no la de diseño ;)
    Si dices que aparece el mensaje enviado directamente es porque no se está ejecutando el php, comprueba que tu servidor lo admita, que la extensión del archivo sea .php, etc..
    Un saludo!

  11. 411
    Ivan Says:

    Hola,

    te felicito por el código, esta genial, lo probé y me funciono de maravilla

  12. 412
    nnatali Says:

    Hola Ivan! Gracias! me alegro que te funcionase :D

  13. 413
    Fran Says:

    saludos Nelly Natalí me gusta tu web y tus perfiles es interesante lo que te dedicas y yo tambien estoy tras tus pasos de Peru para ti Saludos Nelly Natalí…

    espero saber mas de ti…

  14. 414
    Alfredo Says:

    Definitivamente.. Natali sos la mejor. gracias por ese aporte. un saludo desde cali-colombia tu admirador numero 1. =)

  15. 415
    Randy Says:

    Hola Nelly… eres muy bonita…

  16. 416
    christian Says:

    hola nelly, diskulpa ke sea tan burro para estas kosas pero me aparece un error en la linea 39 y me gustaria saber ke es o como resolverlo, te agradeceria musho si me pudieras ayudar

  17. 417
    Alberto Says:

    Hola Natali, buen día, copie tu codigo pero no me funciona me sale un error, sera porque soy nuevo en esto jejeje, me puedes ayudar a resolver el problema, por favor.
    El mensaje de error es el siguiente:
    NO SE PUEDE ENCONTRAR LA PAGINA WEB
    y en la URL aparece: http://localhost/phpmyadmin/proyectosdelvc/enviarporcorreo/%3C?=$_SERVER‘PHP_SELF’]?>

    No se si aqui se tenga que poner otra cosa y pusiste eso como ejemplo. Iluminame.
    Espero me respondas pronto, me urge que esto funcione.
    Muchas gracias de antemano
    Saludos
    Alberto

  18. 418
    ksper Says:

    Hola Natalí cómo va? (es un modismo que usamos en Argentina xD )
    Este post tuyo me facilitó la vida como no te das una idea, y no dejo de agradecertelo.
    Me veo en la necesidad de molestarte nuevamente, ya que estuve investigando y no pude llegar a una soluciòn.
    Estuve intentando que el remitente no fuera una direcciòn de correo (intentè cambiar el $_Post para la caja de nombre) pero llega como nombre@yourhostingaccount.com no se porquè. No hubo forma de que funcionara.
    Momentáneamente lo cambiè como para que llegue con un nombre genèrico (Contacto Blabla…), me sirve, pero querrìa saber como lograr lo que te mencionaba anteriormente.

    Espero haberme dado a internet.

    Cualquier pista que puedas darme es màs que bienvenida y nuevamente un millón de gracias por publicar cosas tan ùtiles (y haberme garantizado màs horas de sueño ajjajaja xD)

    Un abrazo!

  19. 419
    Oscar Says:

    No me sirvio

  20. 420
    david leon baeza Says:

    Hola Natalí Buenas tardes,espero no ser una molestia con mi comentario pero es que estoy empezando en esto del PHP y tengo un problema con mi Sitio, quiero colocar una seccion de comentarios para que los usuarios pueda dejar los comentarios se vizualicen ahi mismo .
    Espero me pedas ayudar mi correo es daleon_24@hotmail.com

  21. 421
    raiderv Says:

    Genial, thk’s el codigo me funciono a la primera…

    fácil y bonito….

    gracias por el dato.

  22. 422
    Fernando Says:

    Hola natali meparece muy bueno tu aporte , pero no me funciona en mi pagina web al momento de enviar me dice El sitio web rechazó mostrar esta página web Causas más probables:
    •Este sitio web requiere un inicio de sesión en él.

    Puede intentar lo siguiente:
    Regresar a la página anterior.
    bueno quisiera que me ayude a poder solucionar este problema muchas gracias…

Páginas: « 1 2 3 4 [5] Mostrar todos

Leave a Reply