Ayuda con html y php

Iniciado por andrecid, 7 Agosto 2014, 17:30 PM

0 Miembros y 1 Visitante están viendo este tema.

andrecid

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:


Código (php) [Seleccionar]
<?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

MinusFour

Tienes varios errores de syntaxis.

La lineas 14-17 es un bloque sin sentido. No necesitas las llaves.
Te falta un parentesis aquí:
Código (php) [Seleccionar]

!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:

Código (php) [Seleccionar]

{
mail($destinatario,$asunto,$mensaje);

}


por

Código (php) [Seleccionar]

$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.

andrecid

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

MinusFour

¿Como está compuesto tu formulario?

andrecid

#4
Te voy a pasar todos los cod.

html:

Código (html4strict) [Seleccionar]
<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:

Código (php) [Seleccionar]
<?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.


MinusFour

#5
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.

Código (HTML4Strict) [Seleccionar]
<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

Código (HTML4Strict) [Seleccionar]

<form method="POST">