Crear formulario de contacto para mi página web

  • Autor Autor perafan18
  • Fecha de inicio Fecha de inicio
P

perafan18

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola 🙂
Quiero hacer otra pagina web y quiero que las personas me puedan mandar un mensaje a mi correo electrónico.
intente con este cogido:
PHP:
<?php
#Configuración:
$mail_destinatario = ' pxxxxxxxx8@hotmail.com';
#Fin de la Configuración
if (isset ($_POST['enviar'])) {$headers .= "From: ".$_POST['email']. "rn";if ( mail ($mail_destinatario, $_POST['asunto'], "Nombre y apellidos : ".$_POST['nombre']." Asunto: ".stripcslashes ($_POST['asunto'])."n Mensaje :n ".stripcslashes ($_POST['mensaje']), $headers )) echo '
Su mensaje a sido enviado correctamente.
'; 
else echo '
Error al enviar el formulario.
'; } 
echo '<form action="?" method="post"> <label for="nombre">Nombre y apellidos : </label>  <input type="text" name="nombre" size="50" maxlength="80"><br> <label for="email">Email : </label><input type="text" name="email" size="50" maxlength="60"><br> <label for="asunto">Asunto : </label><input type="text" name="asunto" size="50" maxlength="60"><br> <label for="mensaje">Mensaje : </label>  <textarea name="mensaje" cols="31" rows="5"></textarea> <br><label for="enviar"><input type="submit" name="enviar" value="Enviar consulta"></label> </form>
&nbsp;
';?>
Pero siempre que mando el fomulario lleno me dice "Error al enviar el formulario." No se por que me marca el error.
Alguien me puede ayudar? 🙂
Saludos.
 
Por lo que veo el if te da false y por eso sale el error. Habria que ver el formulario html que llama a este archivo. Sin mirar supongo dos posibles errores: uno que method=post no este bien puesto o que no tengas un campo del formulario cuyo name="enviar". Si tienes esto bien pon el html asi tenemos mas informacion.
 
Este es el fomulario :
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es-es" lang="es-es"> 
<head> 
<title>Ejemplo de envío de formulario por email con php</title> 
<meta name="description" content="Formulario de contacto enviado por correo electronico usando php"/> 
</head> 
<body> 
<form action="myform.php" method="POST"> 
<label for="nombre">Nombre y apellidos : </label>  
<input type="text" name="nombre" size="50" maxlength="80"><br> 
<label for="email">Email : </label>
<input type="text" name="email" size="50" maxlength="60"><br> 
<label for="asunto">Asunto : </label>
<input type="text" name="asunto" size="50" maxlength="60"><br> 
<label for="mensaje">Mensaje : </label>  
<textarea name="mensaje" cols="31" rows="5"></textarea> <br>
<label for="enviar">
<input type="submit" name="enviar" value="Enviar consulta">
</label> 
</form>

</body> 
</html>

y este myform.php:

PHP:
<?php
#Configuración:
$mail_destinatario = 'pedro_inat18@hotmail.com';
#Fin de la Configuración
if (isset ($_POST['enviar'])) 
{$headers .= "From: ".$_POST['email']. "\n";
if 
( mail ($mail_destinatario, $_POST['asunto'], "Nombre y apellidos : ".$_POST['nombre']." Asunto: ".stripcslashes ($_POST['asunto'])."n Mensaje :n ".stripcslashes ($_POST['mensaje']), $headers )) echo '
Su mensaje a sido enviado correctamente.
'; 
else echo '
Error al enviar el formulario.
'; } 
';?>
 
No se como no lo vi antes. Perdona la demora.
El error esta en el codigo del if. Tienes que cerrarlo antes del else y luego abrir las llaves de nuevo para contener el else. No se si quedo claro te pongo el formato del if else aqui:
if (condicion) { instrucciones } else {instrucciones}
Si miras tu codigo veras que no cierras la llave antes del else. Si corriges eso va bien... Ya lo he probado.
Otra cosa este ultimo myform.php tiene un cierre de comillas y un punto y coma de mas al final.
 
Si no te quieres complicar mucho, dime por privado los campos que quieres agregar y el e-mail a donde se debe enviar y te haré la página del formulario completa. Luego es simplemente insertarlo en tu web y listo. Aunque te recomiendo que, primeramente, pruebes a solocionarlo. Sino, MP 😉

Saludos!
 
Gonzalo Nandez
Entonces asi tiene que quedar?
PHP:
<?php 
#Configuración: 
$mail_destinatario = 'pedro_inat18@hotmail.com'; 
#Fin de la Configuración 
if (isset ($_POST['enviar']))  
{$headers = "From: ".$_POST['email']. "\n";}
if  
( 
mail 
($mail_destinatario, $_POST['asunto'], 
"Nombre y apellidos : ".$_POST['nombre'].
"Asunto: ".stripcslashes ($_POST['asunto']).
"n Mensaje :n ".stripcslashes ($_POST['mensaje']),
$headers )
) 
{
echo ' 
Su mensaje a sido enviado correctamente. 
';}  
else 
{
echo ' 
Error al enviar el formulario. 
'; } 
?>
Pero me sigue mandando "Error al enviar el formulario." :grumpy: no entiendo.
Si me gustaria hablar contigo Xetix 🙂
 
Me guardo los códigos, si no os importa claro :encouragement:
 
A ver. Esta vez el else salta cuando no puedes enviar el correo. Ahi el problema puede ser de muchas fuentes. Lo que pasa es que mail devuelve false y eso lo debes mirar. Si es en localhost ese error se da bastante y no se si se puede solucionar, si no es localhost entonces debes mirar la configuracion del servidor para enviar correos.
*** Te recomiendo siempre indentar el codigo. Lo hace mas legible para ti y para nosotros ***
 
Pegalo tal como te lo estoy pasando

<div class="ws16" id="shape4" style="LEFT: 641px; OVERFLOW: hidden; WIDTH: 390px; POSITION: absolute; TOP: 650px; HEIGHT: 447px; border: 1px none Enlace eliminado z-index: 28;">
<div>
<div class="ws12">
<table width="100%" border="0" cellpadding="10" cellspacing="0">
<tbody>
<tr>
<td align="left"><div>
<p class="normalnegrita1">
<?php if (!isset($_POST['email'])) { ?>
</p>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<h1 class="Estilo1 style2">&nbsp;</h1>
<p class="style1"><span class="Estilo53">Nombre:</span> &nbsp;&nbsp;
<input style="color: Enlace eliminado" name="nombre" type="text" id="nombre" />
<br />
<br />
<span class="Estilo53">Email:</span><span class="Estilo36">&nbsp;</span>&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp;
<input style="color: Enlace eliminado" name="email" type="text" id="email" />
</p>
<p class="style1"><span class="Estilo53">Telefono: </span> <em> &nbsp;
<input style="color: Enlace eliminado" name="pais" type="text" id="pais" />
</em></p>
<p class="style1"><span class="Estilo53">Mensaje:</span><br />
<span class="Estilo50">
<textarea style="color: Enlace eliminado" name="mensaje" rows="6" cols="40" id="mensaje"></textarea>
<br />
<span class="Estilo17">Su E-mail es Confidencial y no lo compartiremos
con nadie</span></span></p>
<p class="style1">
<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&aacute; nuestro mensaje
// y con la funci&oacute;n mail enviamos el mensaje, los par&aacute;metros son: direcci&oacute;n de envio, asunto, mensaje, cabeceras (en mi caso pongo el remitente).
$msg= "";
$msg= "Mensaje del formulario de contacto de Ecuaimco.com";
$msg.= "\nNombre: ". $_POST['nombre'];
$msg.= "\nEmail: ".$_POST['email'];
$msg.= "\nTelefono: ". $_POST['pais'];
$msg.= "\nMensaje: ".$_POST['mensaje'];
$remitente = $_POST['email'];
$subject = "Mensaje enviado desde tupagina.com por: ".$_POST['nombre'];
mail('email@tupagina.com', $subject, $msg, "FROM: $remitente");

?>
<? echo "Su mensaje es muy Importante para Nosotros.
Te estaremos respondiendo dentro de las proximas 24 horas, Gracias " ?>
<? } ?>
</div>
<p class="normal1"></p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
 
Muchas gracias! [MENTION=5844]jodatelo[/MENTION]

Alguien sabe como mandar también una imagen? :ambivalence:
ya busque varias formas .... pero no me sirven :/
 
Última edición:
Quieres que la imagen se suba o que mande el link ?
 
que la imagen me la mande a mi correo
 
Atrás
Arriba