Hola les comento mi duda, estoy haciendo un formulario pero cuando quiero que este se me envie a mi gmail.
me aparece en mi pagina web los codigos html así
Doy click en enviar:
<?php
if(isset ($_Post['nombre']) && !empty($_Post['nombre']) &&
isset ($_Post['asunto']) && !empty ($_Post['asunto'] &&
isset ($_Post['mensaje']) && !empty($_Post['mensaje']))
{
$destinatario = "mi correo";
$asunto = $_Post['asunto'];
$mensaje= $_Post['mensaje'];
{
mail($destinatario,$asunto,$mensaje);
}
echo"correo enviado";
}else
{
echo"correo no enviado";
}
}
?>
y me aparece eso.
Por favor alguien me puede ayudar?
Mod: Temas PHP en subforo de PHP. Obligatorio el uso de etiquetas GeSHi.
-> [Obligatorio] Normas del subforo de Desarrollo Web (http://foro.elhacker.net/desarrollo_web/obligatorio_normas_del_subforo_de_desarrollo_web_16072014-t407889.0.html)
Tienes varios errores de syntaxis.
La lineas 14-17 es un bloque sin sentido. No necesitas las llaves.
Te falta un parentesis aquí:
!empty($_POST['asunto']
La función de correo necesita varios ajustes. (puedes simplemente utilizar un script de ejemplo de PHP para esto).
Hay una llave al final que tampoco tiene sentido, no está cerrando nada.
Remplaza:
{
mail($destinatario,$asunto,$mensaje);
}
por
$headers = 'From: info@tudominio.com' . "\r\n" .
'Reply-To: info@dominio.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($destinatario, $asunto, $mensaje, $headers);
Gmail probablemente te rechaze el correo y ni siquiera te llegue a la carpeta de spam, dependiendo si reconoce a tu SMTP como una fuente valida y si pasas o no el spf.
Muchas gracias por tu ayuda, no me aparece eso ahora ya funciona todo perfectamente bueno casi perfectamente ahora cuando le doy en enviar me aparece correo no enviado
¿Por que ocurre esto?
me puedes explicar como puedo modificar el SMPT
Gracias por tu ayuda
¿Como está compuesto tu formulario?
Te voy a pasar todos los cod.
html:
<form class="contact_form">
<ul>
<li><label for="name">Nombre:</label><input type ="text" placeholder="david" required > </li>
<li><label for ="asunto">Asunto:</label><input type="asunto"placeholder="Error en .." required><span class ="form_hint"></span>Error en.."boton,registro"</li>
<li><label for ="mensaje">Mensaje:</label><textarea rows="20" cols="100" required>></textarea></li>
<li><button class="submit"type="submit">Enviar</button></li>
obviamente faltan partes del codigo pero esta es la parte del codigo importante
PHP:
<?php
if(isset ($_POST['nombre']) && !empty($_POST['nombre']) &&
isset ($_POST['asunto']) && !empty ($_POST['asunto']) &&
isset ($_POST['mensaje']) && !empty($_POST['mensaje']))
{
$destinatario = "...";
$asunto = $_POST['asunto'];
$mensaje= $_POST['mensaje'];
$headers = 'From: miemail' . "\r\n" .
'Reply-To: ?' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($destinatario, $asunto, $mensaje, $headers);
echo"correo enviado";
}else{
echo"correo no enviado";
}
?>
css está parte es innecesaria.
Espero tu respuesta
MOD: ULTIMO AVISO. Etiquetas GeSHi Obligatorias.
[Obligatorio] Normas del subforo de PHP. (https://foro.elhacker.net/php/obligatorio_normas_del_subforo_de_php_18072014-t148495.0.html)
Tu formulario no está usando POST (el default es get), no se si el archivo php este en otro lugar diferente a tu HTML pero al parecer no es el caso porque ya te ha regresado algo el formulario.
Los inputs de tus formularios tampoco tienen nombre, por lo que el PHP no los ve.
e.g.
<li><label for="name">Nombre:</label><input name="name" type ="text" placeholder="david" required > </li>
Edit: Realmente no estoy seguro si PHP no los ve, lo más probable es que si los vea pero en un arreglo normal i.e. $_POST[0]...
Para poner tu formulario como POST
<form method="POST">