Formulario en php

  • Autor de la entrada:
  • Categoría de la entrada:Aplicaciones / Tips

Actualización: Por varios comentarios recibidos les comento que puede que este formulario no funcione bien, debido a que las versiones de PHP han cambiado desde que fue escrito el post.

Con PHP en solo un par de lineas podemos enviar correos electrónicos sin ningún tipo de problema.

1. Abrimos una pagina en blanco, y creamos un form… (suponiendo que tienes DW y sabes como hacer un formulario;) ) y lo guardas como contacto.htm (ó .php, etc.)

Nombre:

E-mail:

Asunto:

Comentarios:



O puedes copiar este simple codigo y pegarlo en contacto.htm:

<form action="correo.php" method="post" enctype="multipart/form-data">
Nombre: <br />
<input name="nombres" type="text" id="nombres"/><br />
E-mail: <br />
<input name="email" type="text" id="email"/><br />
Asunto: <br />
<input name="asunto" type="text" id="asunto"/><br />
Comentarios:<br />
<textarea name="comentarios" id="comentarios"></textarea><br /><br />
<input type="submit" name="Submit" value="Enviar"/>
</form>

2. Ya tenemos un formulario simple hecho, ahora vamos a echar un poquito de codigo php… y lo guardaremos como correo.php, sin etiquetas html, etc. solamente este codigo…

< ?php // Aqui pasamos los valores del formulario a variables $nombres = $_POST['nombres']; $email = $_POST['email']; $asunto = $_POST['asunto']; $comentarios = $_POST['comentarios']; // ahora vamos a hacer la cabecera del e-mail // Aqui coloca tu correo donde llegara la informacion $to = "tucorreo@tudominio.com"; // Aqui estara la informacion del remitente, Ej. Daniel N
$header = «From: «.$nombres .»< ".$email.">«;
// Aqui vamos a adjuntar el nombre y el email al texto del comentario..
$mensaje = «Hola, «.$nombres .» («.$email.»)\n te escribio el siguiente mensaje: \n\n»;
$mensaje .= $comentarios;
// funcion de correo mail(recipiente, asunto, mensaje, cabeceras adicionales)
mail($to, $asunto, $mensaje, $header) or die(‘No se puedo enviar el correo’);

echo «Se ha enviado un correo exitosamente de $nombres ($email)»;

?>

Si quieres definir el asunto tu mismo, simplemente, borras el campo asunto el formulario y la variable $_POST[‘asunto’] la sustituyes por el asunto que tu quieras, ej. $asunto = «Mensaje enviado desde mi Web»;

Recomendaciones:
1.-Siempre escribe en minúscula el código, variables, nombre de campos, etc.
2.-El input text debe tener el mismo nombre que la variable «$_POST[»]» porque sino no llegara como quieres.
3. Si tienes muchas dudas, date un vuelta por www.php.net, ó si esta en tus posibilidades comprate un libro de php, seguramente conseguiras buenos ejemplos, códigos, etc. que puedas usar para tus web.

Rauto

Soy diseñador desde hace más de diez años, tengo amplia experiencia en lineamiento del concepto creativo, creación de manuales de normas y estilos, estándares de interfaz de usuario y navegabilidad. Este es mi blog personal donde hablo de los temas que me interesan.

Esta entrada tiene 22 comentarios

  1. Marta Cristina

    hola tengo una duda? cuando deja un campo en blanco y colocas buscar o enviar me gustaria que no te deje pasar sin antes colocarle texto como se hace?

  2. Rauto

    Para eso necesitas un javascript que valide, en cuanto tenga un poco de tiempo publico un ejemplo. Si no queres esperar podes buscar en Google «validar formulario» y seguramente algo bueno va a salir.

  3. Miguel angel

    como puedo utlizar un php paar levantarlo.tengo un servidor gratuito en yahoo.pero no lo puedo codificar bien me sale error.

    la pregunta es ¿se levanta el formulario en htm y luego php

    pero como lo codifico el formulario htm para que lo pueda accesar al php. gracias por la respuesta.

    envia un correo a papuchomig@hotmail.com por favor

  4. Rauto

    Primero habria que saber si tu servidar gratuito de Yahoo brinda soporte para php, en caso afirmativo, el formulario debería funcionar correctamente.

  5. nora

    porfavor…necesito informacion hacerca de como limitar el ingreso a campos de texto, ya sea para numneros o para letras o para email……….gracias

  6. Rauto

    Nora para limitar los campos de texto tenes que agregar en el campo input:
    <input type="text" maxlength="40" />
    donde maxlength es el atributo que limita la extensión de los campos de texto. Cambia el 40 por el número de carácteres máximo que quieras.

  7. Mik

    Hola quiero saber si la funcion mail() sigue en uso o ha sido descartada de PHP, eso he visto en otras paginas.

    Gracias

    MIk

  8. Rauto

    En uso sigue estando, esta tanto soportada para PHP3, PHP4 y PHP5. En el manual de php podes sacarte dudas. Esto no quiere decir que existan cosas nuevas. Pero yo estoy un poco desinformado del tema en este momento. Si tenes algún link interesante por favor compartimelo.

  9. Eli

    No me funciona el form, cuando pulso enviar quiere abrir o guardar el php.

  10. Alejandro

    Hola muchas gracias por el codigo,
    Te quiero consultar porque me sale un mensaje de error
    Parse error: syntax error, unexpected ‘:’ in /form/correo.php on line 12
    Te pido por favor me explique cual puede ser el motivo.
    Muchas Gracias

  11. Luis Felipe Espitia

    Dice : Se ha enviado un correo exitosamente de Luis Felipe (lespitia@hotmail.com)
    pero no me llega el correo de prueba

  12. Paulo

    He hecho lo que has dicho, pero no me funciona. Se me abre el archivo php en vez de enviar el correo… Que tengo que hacer???
    Mil gracias.

  13. Rauto

    Creo que este formulario en php a quedado un poco obsoleto, como sabrán las versiones de PHP en los servidores han cambiado de versiones y puede ser esa una de las razones por las cuales no funcione.
    Espero en breve poder publicar uno nuevo más actual y que funcione sin tantos problemas.

  14. sebastian

    Hola hay un error en el codigo muy simple cuando pegas el codigo php

    < ?php

    En esta parte miren hay un espacio borrenlo para q sirva el codigo
    que quede asi:

    <?php

    bueno ya chao

  15. omar

    hola me marca un error en la linea 12 cuando lo modifico en el dreamwebas,
    este es
    Parse error: parse error, unexpected ‘:’ in E:\EasyPHP 2.0b1\www\formulario\correo.php on line 12

    no encuentro el problema, me podrias ayudar

  16. otpusx

    sabes como podeis mandar las variables de un formulario a otrto formulario desde la misma pagina espero haberme explicado y gracias por adelantado

  17. erick

    no sirve para nada el php se los digo

  18. erick

    En uso sigue estando, esta tanto soportada para PHP3, PHP4 y PHP5. En el manual de php podes sacarte dudas. Esto no quiere decir que existan cosas nuevas. Pero yo estoy un poco desinformado del tema en este momento. Si tenes algún link interesante por favor compartimelo

  19. andres

    hola
    yo quiero saber si eso es todo el formulario con php o si es mas

  20. Irwin Borjas

    Hola saludos, como puedo agregar más campos como: teléfonos, dirección, etc?

  21. Martin

    tambien tengo prblemas con la linea 12, cual puede ser el inconveniente?

  22. Rauto

    Es un formulario muy viejo, seguramente los hostings actuales ya no lo soportan.
    Te recomiendo buscar alguno más actual.

    Saludos.

Comentarios cerrados.