Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: andrecid en 7 Agosto 2014, 17:30 pm



Título: Ayuda con html y php
Publicado por: andrecid en 7 Agosto 2014, 17:30 pm
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
  1. <?php
  2.  
  3.  
  4. if(isset ($_Post['nombre']) && !empty($_Post['nombre']) &&
  5. isset ($_Post['asunto'])  && !empty ($_Post['asunto'] &&
  6.  isset ($_Post['mensaje']) && !empty($_Post['mensaje']))
  7. {
  8.  
  9. $destinatario = "mi correo";
  10. $asunto = $_Post['asunto'];
  11. $mensaje= $_Post['mensaje'];
  12.  
  13.  
  14. {
  15. mail($destinatario,$asunto,$mensaje);
  16.  
  17. }
  18.  
  19. echo"correo enviado";
  20.  
  21. }else
  22. {
  23. echo"correo no enviado";
  24. }
  25.  
  26.  
  27.  
  28.  
  29.  
  30. }
  31.  
  32. ?>
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)


Título: Re: Ayuda con html y php
Publicado por: MinusFour en 7 Agosto 2014, 17:57 pm
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
  1. !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
  1. {
  2. mail($destinatario,$asunto,$mensaje);
  3.  
  4. }

por

Código
  1. $headers = 'From: info@tudominio.com' . "\r\n" .
  2.    'Reply-To: info@dominio.com' . "\r\n" .
  3.    'X-Mailer: PHP/' . phpversion();
  4.  
  5. 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.


Título: Re: Ayuda con html y php
Publicado por: andrecid en 7 Agosto 2014, 18:55 pm
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


Título: Re: Ayuda con html y php
Publicado por: MinusFour en 7 Agosto 2014, 19:12 pm
¿Como está compuesto tu formulario?


Título: Re: Ayuda con html y php
Publicado por: andrecid en 7 Agosto 2014, 19:51 pm
Te voy a pasar todos los cod.

html:

Código
  1. <form class="contact_form">
  2. <ul>
  3. <li><label for="name">Nombre:</label><input type ="text" placeholder="david" required > </li>
  4. <li><label for ="asunto">Asunto:</label><input type="asunto"placeholder="Error en .." required><span class ="form_hint"></span>Error en.."boton,registro"</li>
  5. <li><label for ="mensaje">Mensaje:</label><textarea rows="20" cols="100" required>></textarea></li>
  6. <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
  1. <?php
  2.  
  3. if(isset ($_POST['nombre']) && !empty($_POST['nombre']) &&
  4. isset ($_POST['asunto'])  && !empty ($_POST['asunto']) &&
  5.  isset ($_POST['mensaje']) && !empty($_POST['mensaje']))
  6. {
  7.  
  8. $destinatario = "...";
  9. $asunto = $_POST['asunto'];
  10. $mensaje= $_POST['mensaje'];
  11.  
  12. $headers = 'From: miemail' . "\r\n" .
  13.    'Reply-To: ?' . "\r\n" .
  14.    'X-Mailer: PHP/' . phpversion();
  15.  
  16. mail($destinatario, $asunto, $mensaje, $headers);
  17.  
  18.  
  19.  
  20. echo"correo enviado";
  21.  
  22. }else{
  23.  
  24. echo"correo no enviado";
  25. }
  26.  
  27. ?>

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)



Título: Re: Ayuda con html y php
Publicado por: MinusFour en 7 Agosto 2014, 20:20 pm
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
  1. <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
  1. <form method="POST">