Foros del Web » Programando para Internet » PHP »

[APORTE] Formulario de Contacto PHP [Usando funcióm mail()]

Estas en el tema de [APORTE] Formulario de Contacto PHP [Usando funcióm mail()] en el foro de PHP en Foros del Web. Buenas, cuando me ayudaron con este formulario aquí en Foros del Web, me prometí a mi mismo que cuando lo terminase lo compartiría con los ...
  #1 (permalink)  
Antiguo 03/05/2011, 13:41
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 8 años, 5 meses
Puntos: 7
Información [APORTE] Formulario de Contacto PHP [Usando funcióm mail()]

Buenas, cuando me ayudaron con este formulario aquí en Foros del Web, me prometí a mi mismo que cuando lo terminase lo compartiría con los demás usuarios, así que allá voy :)

Este formulario utiliza la función mail() para mandar un mensaje desde un formulario ubicado en una web a una dirección de correo electrónico. Paso a detallarles los pasos.

1º-Crean un archivo PHP llamado "enviar.php".
2º-Dentro copian el siguiente código:
Código:
<?php
$Nombre = $_POST['Nombre'];
$Email = $_POST['Email'];
$PaginaWeb = $_POST['PaginaWeb'];

$header = 'From: ' . $Email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $Nombre . ", y su Página Web es " . $PaginaWeb . " \r\n";
$mensaje .= "Su e-mail es: " . $Email . " \r\n";
$mensaje .= "Mensaje: " . $_POST['Mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$para = '[email protected]';
$asunto = 'Contacto desde Tu Web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo "Su mensaje a sido enviado correctamente" ;
header("Location:http://www.tudominio.com/archivo_al_que_quieres_que_vaya.php"); 

?>
3º-En este archivo tienen que configurar con sus datos lo marcado en rojo:
Código:
<!--Aquí ponen el email al que quieren que llegue el mensaje-->
$para = '[email protected]';
<!------------------------------------------------------------>
<!--Aquí ponen el nombre de su web-->
$asunto = 'Contacto desde Tu Web';
<!------------------------------------------------------------>
<!--Aquí ponen la ruta donde tienen el archivo a donde quieren que regrese
 despúes de enviar el mensaje(Recomiendo que en ese archivo pongan que el 
mensaje a sido enviado.Si es necesario, crean un archivo nuevo.)-->
header("Location:http://www.tudominio.com/archivo_al_que_quieres_que_vaya.php"); 
<!------------------------------------------------------------>
4º-Poner el formulario en su página web:
Formulario:
Código:
<form id="form1" name="form1" method="post" action="http://www.lodosataurina.net46.net/enviar.php">
			  <table width="459" border="0">
                <tr>
                  <th width="115" scope="col"><div align="right">Nombre:</div></th>
                  <th width="339" scope="col"><div align="left">
                    <input name="Nombre" type="text" id="Nombre" />
                  </div></th>
                </tr>
                <tr>
                  <td><div align="right"><strong>E-mail:</strong></div></td>
                  <td><input name="Email" type="text" id="Email" /></td>
                </tr>
                <tr>
                  <td><div align="right"><strong>Página Web: </strong></div></td>
                  <td><input name="PaginaWeb" type="text" id="PaginaWeb" /></td>
                </tr>
                <tr>
                  <td><div align="right">
                    <p><strong>Mensaje:</strong></p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                    <p>&nbsp;</p>
                  </div></td>
                  <td><p>
                    <textarea name="Mensaje" cols="45" rows="12" id="Mensaje"></textarea>
                   <center><input name="Enviar" type="submit" id="Enviar" value="Enviar" />
                    <input name="Borrar" type="reset" id="Borrar" value="Borrar" /></center>
                    </p>
                  </td>
                </tr>
        </table>
</form>
5º-En este archivo tienen que configurar con sus datos lo marcado en rojo:
Código:
<!--Aquí ponen la ruta donde se encuentra el archivo "enviar.php"-->
action="http://www.sudominio.com/ruta/enviar.php">
<!------------------------------------------------------------>
Espero que les sirva de ayuda. Pueden personalizar el formulario a su manera. Comenten que les a parecido ya que es mi primer trabajo en PHP(No todo el codigo es mio).Saludos
  #2 (permalink)  
Antiguo 22/05/2011, 17:37
 
Fecha de Ingreso: febrero-2011
Mensajes: 23
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Nadie usa el sistema?Me costo mucho ponerlo a funcionar...
  #3 (permalink)  
Antiguo 22/05/2011, 19:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 2 meses
Puntos: 1516
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Que nadie haya indicado que lo usa no quiere decir que no lo usen.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 25/06/2011, 08:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 16
Antigüedad: 8 años, 3 meses
Puntos: 1
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Hola que tal, muchas gracias ASierLodosa, estoy usando el codigo php pero tengo un problema. El correo que llega a mi mail solo llega asi:

Este mensaje fue enviado por:

Su e-mail es: [email protected]

Su telefono es:

Mensaje:

Enviado el 25/06/11 a las 09:42:02

No me llega ni el nombre, ni el telefono ni mensaje, que puedo hacer? en verdad que soy un novato en esto..

este es el codigo que tengo:

</head>
<body>
<?php

$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$Message = $_POST['message'];

$header = 'From: ' . $email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por: " . $name . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Su telefono es: " . $phone . " \r\n";
$mensaje .= "Mensaje: " . $_POST['message'] . " \r\n";
$mensaje .= "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");


$mail = "[email protected],[email protected] ";
$mailFrom = $email;
$mailSubject = "Contacto desde página web";

mail($mail, $mailSubject, utf8_decode($mensaje));
?>

y este el codigo de mi formulario:


<h4>forma de Contacto</h4>
<form action="enviar-contacto.php" id="contact-form" method="post" class="main-contacts">
<fieldset>
<input type="hidden" name="owner_email" id="owner_email" value="[email protected]" />
<input type="hidden" name="serverProcessorType" id="serverProcessorType" value="asp" />
<input type="hidden" name="smtpMailServer" id="smtpMailServer" value="localhost" />
<input type="hidden" name="stripHTML" id="stripHTML" value="true" />

<div class="rowElem">
<input type="text" name="name" id="name" value="Nombre:" onFocus="if(this.value=='Name:'){this.value=''}" onBlur="if(this.value==''){this.value='Name:'}" />
<label class="error" for="name" id="name_error">*Este campo es obligatorio.</label>
<label class="error" for="name" id="name_error2">*No es un nombre válido.</label>
</div>
<div class="rowElem">
<input type="email" name="email" id="email" value="E-mail:" onFocus="if(this.value=='E-mail:'){this.value=''}" onBlur="if(this.value==''){this.value='E-mail:'}" />
<label class="error" for="email" id="email_error">*Este campo es obligatorio.</label>
<label class="error" for="email" id="email_error2">*No es una dirección de correo válida.</label>
</div>
<div class="rowElem">
<input type="text" name="phone" id="phone" value="Teléfono:" onFocus="if(this.value=='Phone:'){this.value=''}" onBlur="if(this.value==''){this.value='Phone:'}" />
<label class="error" for="phone" id="phone_error">*Este campo es obligatorio.</label>
<label class="error" for="phone" id="phone_error2">*No es un número de teléfono.</label>
</div>
<div class="textarea-box">
<textarea onFocus="if(this.value=='Message:'){this.value=''} " onBlur="if(this.value==''){this.value='Message:'}" name="message" id="message">Mensaje:</textarea>
<label class="error" for="message" id="message_error">*Este campo es obligatorio.</label>
<label class="error" for="message" id="message_error2">*El mensaje es muy corto.</label>
</div>
<div class="alignright">
<a href="#" id="clear" class="button2" ><span>borrar</span> <input type="submit" value="Enviar" name="submit" id="submit"/></a>
</div>
</fieldset>
</form>

Muchas gracias
  #5 (permalink)  
Antiguo 22/11/2011, 12:14
 
Fecha de Ingreso: noviembre-2011
Ubicación: Yopal
Mensajes: 12
Antigüedad: 7 años, 9 meses
Puntos: 0
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Super !! muchas gracias lo combine y ahora los mensajes llegan a mi celular

Saludos y gracias desde colombia
  #6 (permalink)  
Antiguo 22/11/2011, 12:21
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 8 años, 2 meses
Puntos: 56
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Buen aporte +10(ops no es taringa ,digo mas +1 XD)
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #7 (permalink)  
Antiguo 25/03/2013, 13:00
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 6 años, 5 meses
Puntos: 9
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Siento resucitar este tema tan viejo, pero es que estoy buscando cómo hacer funcionar mi formulario y no encuentro la forma de que funcione. He usado este código y ya ni siquiera me aparece el formulario, ahora me da directamente un error(Fatal error: Function name must be a string in /home/a6953165/public_html/contacto.php on line 52)
La línea 52 se corresponde a la función mail. Dejo aquí el código por si alguien me puede echar una mano.
Código PHP:
<?php
$Nombre 
$_POST['nombre'];
$Email $_POST['email'];
$Asunto $_POST['asunto'];
$Mensaje $_POST['mensaje'];
$header 'De: ' $Email " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text-plain";
$mensaje "Nombre: " $Nombre " \r\n";
$mensaje "Email: " $Email " \r\n";
$mensaje "Asunto: " $Asunto " \r\n";
$mensaje "Mensaje: " $Mensaje " \r\n";
$mensaje "Enviado el " date("d/m/y \a \l\a\s H:i:s ");
$para 'abelsuv[email protected]';
mail($para$utf8_decode($mensaje), $header);
echo 
"Su mensaje se ha enviado correctamente";
?>
Gracias
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #8 (permalink)  
Antiguo 25/03/2013, 13:05
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 10 años, 10 meses
Puntos: 175
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

temerariomalaga Si las reglas dicen NO ESTACIONAR, y tú estacionas pues ya es por necio, no? NO RESUCITES TEMAS VIEJOS porque te valdrá una sanción...

Crea un tema nuevo y ya...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 25/03/2013, 13:15
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 1 mes
Puntos: 793
Respuesta: [APORTE]Formulario de Contacto PHP[Usando funcióm mail()]

Igual para que no quede la duda, tu error está aquí:

Código PHP:
Ver original
  1. mail($para, $utf8_decode($mensaje), $header);

utf8_decode es una función y no lleva el $

Código PHP:
Ver original
  1. mail($para, utf8_decode($mensaje), $header);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: contacto, mail(), 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

SíEste tema le ha gustado a 5 personas




La zona horaria es GMT -6. Ahora son las 22:30.