comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Formulario de contacto + send.php = 404

  • 19 Respuestas
  • 4238 Vistas

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

Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Febrero 08, 2016, 05:31:27 pm »
Hola, tengo el siguiente formulario:
Código: HTML5
  1. <p>
  2.                                        
  3.                                         <form method="post" action="send.php" onsubmit="return verifyForm();">
  4. <div class="cform1">
  5.                                         <table class="center">
  6.                                                 <tr>
  7.                                                         <td>
  8.                                                                <input type="text" name="email" id="email" placeholder="Tu Email" required autocomplete="off">
  9.                                                 </td>
  10.                                 <td>
  11.                                     <input type="text" name="name" id="name" placeholder="Tu nombre" required autocomplete="off">
  12.                                 </td>
  13.                                                 </tr>
  14.                                                 <tr>
  15.                                                         <td colspan="2"><input type="text" name="subject" id="subject" placeholder="Motivo de tu contacto" maxlength="45" autocomplete="off"></td>
  16.                                                 </tr>
  17.                                                 <tr>
  18.                                                         <td colspan="2">
  19.                                                                 <textarea name="mensaje" id="mensaje" class="textarea1" placeholder="Escribe aquí tu mensaje..." required></textarea>
  20.                                                         </td>
  21.                                                 </tr>
  22.                                                                                                 <tr>
  23.                                                         <td colspan="2">
  24.                                                                 <button class="inputst4 sendbutton" id="inputsend"><span class="icon-tsenvelope"></span> Enviar Mensaje</button>
  25.                                                 </tr>
  26.                                         </table>
  27.                                         </form>
  28.                                         </div>
  29.                                        
  30.                                 </p>

Y el archivo send.php:
Código: PHP
  1. <?php
  2.         error_reporting(0);
  3.        
  4.         $email = $_POST['email'];
  5.         $name = $_POST['name'];
  6.         $subject = $_POST['subject'];
  7.         $mensaje = $_POST['mensaje'];
  8.        
  9.         if ($email=='' || $name=='' || $subject=='' || $mensaje==''){
  10.        
  11.                 echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";
  12.        
  13.         }else{
  14.        
  15.             require("includes/class.phpmailer.php");
  16.             include("includes/class.smtp.php");
  17.            
  18.            
  19.            
  20.        
  21.                 $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  22.                
  23.                 $mail->IsSMTP(); // telling the class to use SMTP
  24.                 $cuerpo="name: ".$name."<br />Email: ".$email."<br />mensaje: ".$mensaje."<br />";
  25.                 try {
  26.                         $mail->Host       = "smtp.gmail.com"; // SMTP server
  27.                         $mail->SMTPAuth   = true;                  // enable SMTP authentication
  28.                         $mail->Port       = 465;                    // set the SMTP port for the GMAIL server
  29.                         $mail->Username   = "mygmail@gmail.com"; // SMTP account username
  30.                         $mail->Password   = "mypasswordgmail";        // SMTP account password
  31.                         $mail->AddReplyTo($email, $name);
  32.                         $mail->AddAddress('sendtomyemail@hotmail.com', 'myemail@hotmail.com');
  33.                         $mail->SetFrom("$email", $name);
  34.                         $mail->IsHTML(true);
  35.                         $mail->Subject = 'Contacto';
  36.                        
  37.                         $mail->MsgHTML($cuerpo);
  38.                         $mail->AltBody = 'Nombre: '.$name.' \n<br />'.
  39.                         'Email: '.$email.' \n<br />'.
  40.                         'Mensaje: '.$mensaje.' \n<br />';
  41.                         $mail->Send();
  42.                         echo "<script>alert('Muchas gracias por contactarnos! Pronto recibirás una respuesta');location.href ='javascript:history.back()';</script>";
  43.                 } catch (phpmailerException $e) {
  44.                         echo $e->errorMessage(); //Pretty error messages from PHPMailer
  45.                 } catch (Exception $e) {
  46.                         echo $e->getMessage(); //Boring error messages from anything else!
  47.                 }
  48.         }
  49.        
  50. ?>
  51.  

Y me sale 404 cuando intento enviar el mensaje desde el hosting, uso hostinger.

Saludos!
« Última modificación: Febrero 11, 2016, 09:22:36 am por blackdrake »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5406
  • Actividad:
    11.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Febrero 08, 2016, 05:52:35 pm »
Hola, te dejo el link de un post que hiciste tu y que lograste solucionar

https://underc0de.org/foro/dudas-generales-121/%28solucionado%29-problema-con-html-%28formulario-de-contacto%29/

Saludos!
ANTRAX


Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Febrero 08, 2016, 07:46:12 pm »
Hola, te dejo el link de un post que hiciste tu y que lograste solucionar

https://underc0de.org/foro/dudas-generales-121/%28solucionado%29-problema-con-html-%28formulario-de-contacto%29/

Saludos!
ANTRAX

Sí es lo mismo, pero añado la línea que puse y nada! El formulario y el php están bien no? Me da error_404

Edito: Ya he probado con el smtp de gmail y también con el correo y smpt de mi dominio y nada.
« Última modificación: Febrero 08, 2016, 07:56:17 pm por 808mafia »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5406
  • Actividad:
    11.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #3 en: Febrero 08, 2016, 07:59:50 pm »
Podrías indicar bien la linea que has puesto?

Saludos!
ANTRAX


Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Febrero 08, 2016, 08:37:12 pm »
Podrías indicar bien la linea que has puesto?

Saludos!
ANTRAX

                      $mail->SMTPSecure = "ssl";               // SMTPSecure

Después de SMTPAuth.
« Última modificación: Febrero 08, 2016, 08:41:16 pm por 808mafia »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5406
  • Actividad:
    11.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #5 en: Febrero 08, 2016, 08:58:31 pm »
Proba poniendolo asi:

Código: PHP
  1. $mail->IsSMTP();
  2. $mail->Host = "smtp.gmail.com";
  3. $mail->SMTPAuth = true;
  4. $mail->SMTPSecure = "ssl";
  5. $mail->Username = "myemail@gmail.com";
  6. $mail->Password = "**********";
  7. $mail->Port = "465";


Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #6 en: Febrero 09, 2016, 08:22:22 am »
Proba poniendolo asi:

Código: PHP
  1. $mail->IsSMTP();
  2. $mail->Host = "smtp.gmail.com";
  3. $mail->SMTPAuth = true;
  4. $mail->SMTPSecure = "ssl";
  5. $mail->Username = "myemail@gmail.com";
  6. $mail->Password = "**********";
  7. $mail->Port = "465";

Mismo error, me sale 404.

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1914
  • Actividad:
    0%
  • Reputación 15
    • Ver Perfil
« Respuesta #7 en: Febrero 09, 2016, 12:00:12 pm »
Puedes probar en otro servidor para descartar eso? Es raro que te de un 404 (Not found), si el fichero send.php existe.

Saludos.



Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #8 en: Febrero 09, 2016, 12:07:31 pm »
El send.php está en la misma carpeta que el archivo html?

Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #9 en: Febrero 09, 2016, 05:25:24 pm »
El send.php está en la misma carpeta que el archivo html?

El send.php está en el directorio principal. Lo raro es que he editado el archivo send.php para mostrar un mensaje de problemas técnicos y si me aparece cuando llamo al php desde el formulario  :(

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1914
  • Actividad:
    0%
  • Reputación 15
    • Ver Perfil
« Respuesta #10 en: Febrero 11, 2016, 09:22:28 am »
El send.php está en la misma carpeta que el archivo html?

El send.php está en el directorio principal. Lo raro es que he editado el archivo send.php para mostrar un mensaje de problemas técnicos y si me aparece cuando llamo al php desde el formulario  :(

Y el html dónde se encuentra el form? También está en la raiz?

Saludos.



Desconectado Unname

  • *
  • Underc0der
  • Mensajes: 33
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Email
« Respuesta #11 en: Febrero 11, 2016, 02:48:21 pm »
Tengo un par de consultas 808mafia :
Supongamos que tienes todas las llamadas escritas en el código correctamente, por favor revisa la raiz de directorios, includes y la extensión del index.
  • Has intentado hacer el envio sin ssl?
  • Porque no pruebas con algo más sencillo para ver si no hay otra cosa que afecte?
te dejo este code básico para que lo pruebes con tu smtp local
Citar
<?php
 
   $smtp = ""; //si tenes SMTP local mejor para probarlo
   $url = "localhost"; //server
   $puerto = "25"; //sin ssl
   $remitente = "";
   $too = "";
    
   ini_set($smtp,$url);
   ini_set("smtp_port",$puerto);
   ini_set("sendmail_from",$remitente);
   
   $subject = "test";
   $message = "prueba de correo";
   $headers = "From: $remitente" ;
   
   mail($too,$subject,$message,$headers);
?>


Quizas separar el código para debugear?


Best regards,
U.

Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #12 en: Febrero 12, 2016, 02:12:14 pm »
@blackdrake

Ahora he probado poniendo e archivo php donde se encuentra el form en vez de directamente en la raiz y cuando intento enviar el formulario me sale un error que dice:

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /home/user212121/public_html/mi-carpeta/send.php on line 28

@Unname

Ya he intentado hacer el envío sin ssl y nada, la otra vez me pasaba lo mismo y solucione poniendo el ssl pero ahora no se que pasa. Pero ahora k ya llama bien al php voy a probar de nuevo y te digo.
« Última modificación: Febrero 12, 2016, 02:14:00 pm por 808mafia »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #13 en: Febrero 12, 2016, 02:25:05 pm »
Prueba con el siguiente código.

Código: PHP
  1. <?php
  2.  
  3. $correoreceptor = trim($_POST['mygmail@gmail.com']);
  4. $asunto = trim($_POST['subject']);
  5. $mensaje = trim($_POST['mensaje']);
  6. $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
  7. $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  8. $Correo = trim($_POST['email']);
  9. $Nombre = trim($_POST['name']);
  10. $cabeceras .= 'From: '.$Nombre.' <'.$Correo.'>' . "\r\n";
  11.  
  12. mail($correoreceptor, $asunto, $mensaje, $cabeceras);
  13.  
  14. header('Location: a donde quieras que te redireccione.');
  15.  
  16.  
  17.  
  18. ?>

Cambia al correo al que quieres que te llegue y al final a donde quieras que te redireccione. Es imposible que los correos te lleguen a la carpeta de spam.

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1914
  • Actividad:
    0%
  • Reputación 15
    • Ver Perfil
« Respuesta #14 en: Febrero 12, 2016, 02:36:04 pm »
@blackdrake

Ahora he probado poniendo e archivo php donde se encuentra el form en vez de directamente en la raiz y cuando intento enviar el formulario me sale un error que dice:

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in /home/user212121/public_html/mi-carpeta/send.php on line 28

@Unname

Ya he intentado hacer el envío sin ssl y nada, la otra vez me pasaba lo mismo y solucione poniendo el ssl pero ahora no se que pasa. Pero ahora k ya llama bien al php voy a probar de nuevo y te digo.

Que tienes en la línea 28?

Saludos.



Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #15 en: Febrero 12, 2016, 06:52:15 pm »
@rollth voy a probar y te digo.

@blackdrake la línea 28 coincide justo con el ssl $mail->SMTPSecure = "ssl";

Lo he suprimido y ahora cuando intento enviar el formulario se queda la pantalla en blanco pero en la url del navegador parece que el archivo php se lee correctamente.

Saludos!

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #16 en: Febrero 12, 2016, 06:56:19 pm »
@rollth voy a probar y te digo.

@blackdrake la línea 28 coincide justo con el ssl $mail->SMTPSecure = "ssl";

Lo he suprimido y ahora cuando intento enviar el formulario se queda la pantalla en blanco pero en la url del navegador parece que el archivo php se lee correctamente.

Saludos!

Si se queda la pantalla en blanco es porque el código se ha ejecutado. Mira a ver si te llegan los correos.

Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #17 en: Febrero 12, 2016, 07:04:52 pm »
@rollth voy a probar y te digo.

@blackdrake la línea 28 coincide justo con el ssl $mail->SMTPSecure = "ssl";

Lo he suprimido y ahora cuando intento enviar el formulario se queda la pantalla en blanco pero en la url del navegador parece que el archivo php se lee correctamente.

Saludos!

Si se queda la pantalla en blanco es porque el código se ha ejecutado. Mira a ver si te llegan los correos.

De momento no me ha llegado nada, ni siquiera en spam. @rollth he probado tu codigo y pasa lo mismo, se queda la pantalla en blanco y no me llega nada x_x

-

@ANTRAX Vale, estaba llamando mal a los includes!!

Ahora me dice: SMTP Error: Could not connect to SMTP host.

Voy a probar con el smpt de google y el de mi hosting y os comento pero creo que ya esta, gracias por la ayuda :P

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5406
  • Actividad:
    11.67%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #18 en: Febrero 12, 2016, 07:24:27 pm »
Genial!

Por las dudas te dejo los datos de SMTP de Gmail

Servidor: ssl://smtp.gmail.com
Puerto: 465
User: mail@gmail.com
Pass: PasswordGmail

Saludos!
ANTRAX


Desconectado 808mafia

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #19 en: Febrero 12, 2016, 11:02:47 pm »
Genial!

Por las dudas te dejo los datos de SMTP de Gmail

Servidor: ssl://smtp.gmail.com
Puerto: 465
User: mail@gmail.com
Pass: PasswordGmail

Saludos!
ANTRAX

He probado varias cosas y me sigue dando el mismo error. Primero he habilitado POP y IMAP en mi cuenta Gmail. ( Sí, lo tenía deshabilitado  ??? )

He puesto la línea del ssl porque según he leído, para el servidor SMTP de gmail eso necesita estar habilitado. He comprobado si la el user y pass es correcto miles de veces y he probado con otros correos de gmail (habilitando pop y imap de nuevo) y nada. He probado el puerto 465 (con ssl) y el 25 (con ssl), y con los 2 me dice lo mismo:

SMTP Error: Could not connect to SMTP host.

El 404 ya sabemos que era porque estaba llamando mal a la ruta, ahora el problema es que no se puede conectar al smtp, he seguido estos pasos sin exito:
https://support.google.com/mail/answer/78775?hl=es

PD: Lo único que no intenté fue probar el puerto 587 (con tls). Lo voy a intentar así y edito.

Desde mi hosting me comentan que han desactivado el host SMTP debido al correo masivo. Y me dicen que use el de gmail.

EDITO Nada, tampoco pude con tls. Me he conectado a través de telnet al smtp.gmail.com con el puerto 25 y conecta correctamente, aquí os dejo el send.php tal como está:
Código: PHP
  1. <?php
  2.         error_reporting(0);
  3.        
  4.         $email = $_POST['email'];
  5.         $name = $_POST['name'];
  6.         $subject = $_POST['subject'];
  7.         $message = $_POST['message'];
  8.        
  9.         if ($email=='' || $name=='' || $subject=='' || $message==''){
  10.        
  11.                 echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";
  12.        
  13.         }else{
  14.  
  15.             require("../../includes/class.phpmailer.php");
  16.             include("../../includes/class.smtp.php");
  17.            
  18.            
  19.            
  20.        
  21.                 $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  22.                
  23.                 $mail->IsSMTP(); // telling the class to use SMTP
  24.                 $cuerpo="Nombre: ".$name."<br />Email: ".$email."<br />Mensaje: ".$message."<br />";
  25.                 try {
  26.                         $mail->Host       = "smtp.gmail.com"; // SMTP server
  27.                         $mail->SMTPAuth   = true;                  // enable SMTP authentication
  28.                         $mail->Port       = "25";                    // set the SMTP port for the GMAIL server
  29.                         $mail->Username   = "miemail@gmail.com"; // SMTP account username
  30.                         $mail->Password   = "password";        // SMTP account password
  31.                         $mail->AddReplyTo($email, $name);
  32.                         $mail->AddAddress('receptor@hotmail.com', 'Hello!');
  33.                         $mail->SetFrom("miemail@gmail.com", $name);
  34.                         $mail->IsHTML(true);
  35.                         $mail->Subject = 'Contacto';
  36.                        
  37.                         $mail->MsgHTML($cuerpo);
  38.                         $mail->AltBody = 'Nombre: '.$name.' \n<br />'.
  39.                         'Email: '.$email.' \n<br />'.
  40.                         'Mensaje: '.$message.' \n<br />';
  41.                         $mail->Send();
  42.                         echo "<script>alert('Muchas gracias por contactarnos! Pronto recibirás una respuesta');location.href ='javascript:history.back()';</script>";
  43.                 } catch (phpmailerException $e) {
  44.                         echo $e->errorMessage(); //Pretty error messages from PHPMailer
  45.                 } catch (Exception $e) {
  46.                         echo $e->getMessage(); //Boring error messages from anything else!
  47.                 }
  48.         }
  49.        
  50. ?>

A ver si alguien sabe decirme que falla.
« Última modificación: Febrero 13, 2016, 08:33:32 am por blackdrake »

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Script para introducir datos de un formulario en una base de datos

Iniciado por Kaynan

Respuestas: 2
Vistas: 1033
Último mensaje Julio 07, 2014, 07:28:46 am
por blackdrake
[SOLUCIONADO] SQLi - Obtener datos a través de formulario login

Iniciado por sandwich

Respuestas: 8
Vistas: 1777
Último mensaje Noviembre 13, 2015, 03:30:05 pm
por EPSILON
[SOLUCIONADO] ¿Hacer que el formulario envíe el action a la misma página en php?

Iniciado por magodiesan

Respuestas: 1
Vistas: 482
Último mensaje Abril 01, 2018, 06:05:25 am
por blackdrake
[SOLUCIONADO] Como armar un formulario de Ventas, y Stock

Iniciado por Gaston_999

Respuestas: 5
Vistas: 3015
Último mensaje Julio 23, 2012, 01:03:23 pm
por @NetFcruz
[SOLUCIONADO] Formulario HTML con integracion a base de datos

Iniciado por TomasBond

Respuestas: 3
Vistas: 928
Último mensaje Octubre 17, 2015, 08:53:10 am
por blackdrake