Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: victorsnk en 19 Marzo 2015, 20:21 pm



Título: [Resuelto] Mi formulario web no funciona
Publicado por: victorsnk en 19 Marzo 2015, 20:21 pm
Hola buenas noches,

Alguien podria ayudarme en decirmo como puedo hacer para que el siguiente formulario se envie de forma automatica a mi correo? ¿Es necesario tener una Base de datos para que funcione? gracias.

Esto es el código que tengo en mi web:

Código
  1. <!-- Three -->
  2. <section id="three">
  3. <h2>estamos en contacto</h2>
  4. <p>Para cualquier consulta, información o sugerencia no dude en contactarme. Me comunicaré con usted en el menor tiempo posible.</p>
  5. <div class="row">
  6. <div class="8u 12u$(small)">
  7. <form method="post" action="send_mail.php">
  8. <div class="row uniform 50%">
  9. <div class="6u 12u$(xsmall)"><input type="text" name="name" id="name" placeholder="Nombre" /></div>
  10. <div class="6u$ 12u$(xsmall)"><input type="email" name="email" id="email" placeholder="Email" /></div>
  11. <div class="12u$"><textarea name="message" id="message" placeholder="Mensaje" rows="4"></textarea></div>
  12. </div>
  13.                                    <br></br>
  14.                                    <ul class="actions">
  15. <li><input type="submit" value="Enviar Mensaje" /></li>
  16. </ul>
  17.  
  18. </form>

y este sería el script que tengo creado en mi servidor:

Código
  1. <?php
  2. $title = 'Nuevo Contacto';
  3. $cuerpo = 'Nombre: '.$_POST['name'].' <br> Email: '.$_POST['email'].' <br> Mensaje: '.$_POST['message'];
  4.  
  5. $server_name = "http://victorsnk.com";
  6. $headers = "MIME-Version: 1.0\n";
  7. $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
  8. $headers .="From: $server_name <victorsnk@yahoo.es>\nX-Mailer: PHP/";
  9.  
  10. mail('victorsnk@yahoo.es', $title, $cuerpo, $headers);
  11.  
  12. header("Location: contacto_enviado.html");
  13. exit();
  14. ?>

y nada ... no hay forma señores. No funciona.


Título: Re: Mi formulario web no funciona
Publicado por: #!drvy en 19 Marzo 2015, 20:28 pm
Lo que necesitas es un servidor SMTP que supongo que no tienes porque no lo mencionas.

Saludos


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 19 Marzo 2015, 21:04 pm
Mi servidor es de pago. Entiendo que tendrá de todo. Utilizo 1and1 ¿como puedo investigarlo y como lo serlo?



Hola si, si dispongo. Tengo hasta 50 cuentas de correo electrónico con servidor smtp o IMAP. como lo configuro?

Mod: No hacer doble post.


Título: Re: Mi formulario web no funciona
Publicado por: #!drvy en 20 Marzo 2015, 00:30 am
Cambia la linea 10 del script que tienes por esto

Código
  1. die(var_dump(mail('victorsnk@yahoo.es', $title, $cuerpo, $headers)));

Y muestra la salida que te da. Si da true, el problema deberia esta en el recipiente o en el propio servidor SMTP.

Saludos


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 07:50 am
Cambia la linea 10 del script que tienes por esto

Código
  1. die(var_dump(mail('victorsnk@yahoo.es', $title, $cuerpo, $headers)));

Y muestra la salida que te da. Si da true, el problema deberia esta en el recipiente o en el propio servidor SMTP.

Saludos

Lo cambie todo usando inclusive el de la web ... algo esta pasando pero el servidor me da que no es. Que puede estar fallando!!?

Código
  1. <?php
  2. $title = 'Nuevo Contacto';
  3. $cuerpo = 'Nombre: '.$_POST['name'].' <br> Email: '.$_POST['email'].' <br> Mensaje: '.$_POST['message'];
  4.  
  5. $server_name = "http://victorsnk.com";
  6. $headers = "MIME-Version: 1.0\n";
  7. $headers .= "Content-Type: text/plain; charset=iso-8859-1\n";
  8. $headers .="From: $server_name <web@victorsnk.com>\nX-Mailer: PHP/";
  9.  
  10. die(var_dump(mail('web@victorsnk.com', $title, $cuerpo, $headers)));
  11.  
  12. header("Location: contacto_enviado.html");
  13. exit();
  14. ?>



Finalmente lo aregle de otra forma. Lo que ocurre es que ahora tengo otra duda. Cuando envio el formulario me lleva a la pagina de enviado correctamente. Lo que ocurre es que se queda en esa pagina, me gustaría que me hiciera volver atras y no se quedara ahi, si no que tan solo diera el mensaje. El codigo que utilizo es este:

Código
  1. <?php
  2. if (!isset($_POST['email'])) {
  3. ?>
  4.  <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  5.    <label>
  6.      Nombre:
  7.      <input name="name" type="text" />
  8.    </label>
  9.     Email:
  10.      <input name="email" type="text" />
  11.    </label>
  12.    <label>
  13.      Mensaje:
  14.      <textarea name="message" rows="6" cols="50"></textarea>
  15.    </label>
  16.    <input type="submit" value="Enviar Mensaje" />
  17.  </form>
  18.  
  19. <?php
  20. }else{
  21.  $mensaje="MENSAJE DE CONTACTO ENVIADO DESDE LA WEB VICTORSNK.COM";
  22.  $mensaje.= "\nNombre: ". $_POST['name'];
  23.  $mensaje.= "\nEmail: ".$_POST['email'];
  24.  $mensaje.= "\nMensaje: \n".$_POST['message'];
  25.  $destino= "victorsnk@yahoo.es";
  26.  $remitente = $_POST['email'];
  27.  $asunto = "Mensaje enviado por: ".$_POST['nombre'];
  28.  mail($destino,$asunto,$mensaje,"FROM: $remitente");
  29. ?>
  30.  <p><strong>Formulario enviado correctamente.</strong></p>
  31. <?php
  32. }
  33. ?>

¿Como podria hacer eso? Aprovechando el hilo, ¿sabeis como puedo añadir un CAPCHA?

MOD: No hacer doble post.


Título: Re: Mi formulario web no funciona
Publicado por: engel lex en 20 Marzo 2015, 12:01 pm
un captcha puedes crearlo tu o usar uno gratuito (o pago, como tu quieras)

por ejemplo el de google reCAPTCHA  (https://www.google.com/recaptcha/intro/index.html)

inscribete, sigue instrucciones


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 12:52 pm
un captcha puedes crearlo tu o usar uno gratuito (o pago, como tu quieras)

por ejemplo el de google reCAPTCHA  (https://www.google.com/recaptcha/intro/index.html)

inscribete, sigue instrucciones

Y la redirección?


Título: Re: Mi formulario web no funciona
Publicado por: engel lex en 20 Marzo 2015, 12:59 pm
Y la redirección?

que redirección explícate?

ya te registraste, viste como se usa, los ejemplos y todo eso?


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 14:00 pm
Si. Gracias.

El tema de resirecxion es que si envías un formulario (pruébalo si quieres) se queda en una pantalla de (mensaje enviado) ¿cómo puedo hacer para que me devuelva a la página de origen?


Título: Re: Mi formulario web no funciona
Publicado por: #!drvy en 20 Marzo 2015, 14:04 pm
@victorsnk,

¿ Acaso sabes lo que estas haciendo ? ¿ Sabes como funciona el código que tienes ?

Lo digo porque en el primer código tenias la redireccion puesta y ahora preguntas como ponerla..

Código
  1. header("Location: contacto_enviado.html");

...

Saludos



Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 14:24 pm
@victorsnk,

¿ Acaso sabes lo que estas haciendo ? ¿ Sabes como funciona el código que tienes ?

Lo digo porque en el primer código tenias la redireccion puesta y ahora preguntas como ponerla..

Código
  1. header("Location: contacto_enviado.html");

...

Saludos

Gracias por la respuesta de verdad. No, en efecto mucho no se, por eso os pregunto. Gracias por la ayuda. La cosa es que no se que hacer para que me devuelva al origen. Esa página que comentas de contacto_enviado.html no existe en mi servidor. Solo quiero que me devuelva.


Título: Re: Mi formulario web no funciona
Publicado por: MinusFour en 20 Marzo 2015, 18:10 pm
Si no tienes ese archivo en tu servidor, cual es el objetivo de tener esa linea en tu codigo. Al enviar location en los heades HTTP estas provocando la redireccion a la ruta en cuestion, asi que esa linea esta redirigiendote una vez terminado de enviar el correo. A menos que haya un problema con tu script y no llegue a ejecutarse esa linea.


Título: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 18:38 pm
Si no tienes ese archivo en tu servidor, cual es el objetivo de tener esa linea en tu codigo. Al enviar location en los heades HTTP estas provocando la redireccion a la ruta en cuestion, asi que esa linea esta redirigiendote una vez terminado de enviar el correo. A menos que haya un problema con tu script y no llegue a ejecutarse esa linea.

Hola qué tal muchas gracias por la respuesta. Si os fijáis en el comando de más arriba ya no tengo en el servidor ese código es pegado lo que sería nuevo código posesos basando continuamente en la primera pregunta que hice ahora tengo un script nuevo.

A continuación remito el código que tengo actualmente este sería el correcto como puedes ver ya no parece ese script que todo el rato estés mencionando:

Código
  1. <?php
  2. if (!isset($_POST['email'])) {
  3. ?>
  4.  <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  5.    <label>
  6.      Nombre:
  7.      <input name="name" type="text" />
  8.    </label>
  9.     Email:
  10.      <input name="email" type="text" />
  11.    </label>
  12.    <label>
  13.      Mensaje:
  14.      <textarea name="message" rows="6" cols="50"></textarea>
  15.    </label>
  16.    <input type="submit" value="Enviar Mensaje" />
  17.  </form>
  18.  
  19. <?php
  20. }else{
  21.  $mensaje="MENSAJE DE CONTACTO ENVIADO DESDE LA WEB VICTORSNK.COM";
  22.  $mensaje.= "\nNombre: ". $_POST['name'];
  23.  $mensaje.= "\nEmail: ".$_POST['email'];
  24.  $mensaje.= "\nMensaje: \n".$_POST['message'];
  25.  $destino= "victorsnk@yahoo.es";
  26.  $remitente = $_POST['email'];
  27.  $asunto = "Mensaje enviado por: ".$_POST['nombre'];
  28.  mail($destino,$asunto,$mensaje,"FROM: $remitente");
  29. ?>
  30.  <p><strong>Formulario enviado correctamente.</strong></p>
  31. <?php
  32. }
  33. ?>


Título: Re: Mi formulario web no funciona
Publicado por: MinusFour en 20 Marzo 2015, 19:00 pm
Vale, realmente no me habia quedado claro si habias substituido el codigo o si simplemente agregaste lo otro. Debes poder agregar la misma linea solo, solo que tienes que cambiar la direccion del archivo por la nueva ruta a la que quieres que te redirija.


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 20 Marzo 2015, 19:28 pm
Vale, realmente no me habia quedado claro si habias substituido el codigo o si simplemente agregaste lo otro. Debes poder agregar la misma linea solo, solo que tienes que cambiar la direccion del archivo por la nueva ruta a la que quieres que te redirija.

O sea que añada esto lo deje así:

Código
  1. header("Location: index.html");


Título: Re: Mi formulario web no funciona
Publicado por: victorsnk en 22 Marzo 2015, 21:54 pm
RESUELTO