Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: 808mafia en Febrero 08, 2016, 05:31:27 PM

Título: Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 08, 2016, 05:31:27 PM
Hola, tengo el siguiente formulario:
Código (html5) [Seleccionar]
<p>
       
        <form method="post" action="send.php" onsubmit="return verifyForm();">
<div class="cform1">
        <table class="center">
        <tr>
        <td>
               <input type="text" name="email" id="email" placeholder="Tu Email" required autocomplete="off">
                </td>
                                <td>
                                    <input type="text" name="name" id="name" placeholder="Tu nombre" required autocomplete="off">
                                </td>
        </tr>
        <tr>
        <td colspan="2"><input type="text" name="subject" id="subject" placeholder="Motivo de tu contacto" maxlength="45" autocomplete="off"></td>
        </tr>
        <tr>
        <td colspan="2">
        <textarea name="mensaje" id="mensaje" class="textarea1" placeholder="Escribe aquí tu mensaje..." required></textarea>
        </td>
        </tr>
                <tr>
        <td colspan="2">
        <button class="inputst4 sendbutton" id="inputsend"><span class="icon-tsenvelope"></span> Enviar Mensaje</button>
        </tr>
        </table>
        </form>
        </div>
       
        </p>


Y el archivo send.php:
Código (php) [Seleccionar]
<?php
error_reporting(0);

        
$email $_POST['email'];
$name $_POST['name'];
        
$subject $_POST['subject'];
$mensaje $_POST['mensaje'];

if ($email=='' || $name=='' || $subject=='' || $mensaje==''){

echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";

}else{

    require("includes/class.phpmailer.php");
    include("includes/class.smtp.php");
    
    
    

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP
$cuerpo="name: ".$name."<br />Email: ".$email."<br />mensaje: ".$mensaje."<br />";
try {
$mail->Host       "smtp.gmail.com"// SMTP server
$mail->SMTPAuth   true;                  // enable SMTP authentication
$mail->Port       465;                    // set the SMTP port for the GMAIL server
$mail->Username   "[email protected]"// SMTP account username
$mail->Password   "mypasswordgmail";        // SMTP account password
$mail->AddReplyTo($email$name);
$mail->AddAddress('[email protected]''[email protected]');
$mail->SetFrom("$email"$name);
$mail->IsHTML(true);
$mail->Subject 'Contacto';

$mail->MsgHTML($cuerpo);
$mail->AltBody 'Nombre: '.$name.' \n<br />'.
'Email: '.$email.' \n<br />'.
'Mensaje: '.$mensaje.' \n<br />';
$mail->Send();
echo "<script>alert('Muchas gracias por contactarnos! Pronto recibirás una respuesta');location.href ='javascript:history.back()';</script>";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
}

?>



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

Saludos!
Título: Re:Formulario de contacto + send.php = 404
Publicado por: ANTRAX 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
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 08, 2016, 07:46:12 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: ANTRAX en Febrero 08, 2016, 07:59:50 PM
Podrías indicar bien la linea que has puesto?

Saludos!
ANTRAX
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 08, 2016, 08:37:12 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Podrías indicar bien la linea que has puesto?

Saludos!
ANTRAX

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

Después de SMTPAuth.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: ANTRAX en Febrero 08, 2016, 08:58:31 PM
Proba poniendolo asi:

Código (php) [Seleccionar]
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]";
$mail->Password = "**********";
$mail->Port = "465";
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 09, 2016, 08:22:22 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Proba poniendolo asi:

Código (php) [Seleccionar]
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]";
$mail->Password = "**********";
$mail->Port = "465";


Mismo error, me sale 404.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: blackdrake 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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: rollth en Febrero 09, 2016, 12:07:31 PM
El send.php está en la misma carpeta que el archivo html?
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 09, 2016, 05:25:24 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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  :(
Título: Re:Formulario de contacto + send.php = 404
Publicado por: blackdrake en Febrero 11, 2016, 09:22:28 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: Unname 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.
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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 12, 2016, 02:12:14 PM
@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972)

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 (https://underc0de.org/foro/index.php?action=profile;u=51666)

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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: rollth en Febrero 12, 2016, 02:25:05 PM
Prueba con el siguiente código.

Código (php) [Seleccionar]
<?php
 
$correoreceptor 
trim($_POST['[email protected]']);
$asunto trim($_POST['subject']);
$mensaje trim($_POST['mensaje']);
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$Correo trim($_POST['email']);
$Nombre trim($_POST['name']);
$cabeceras .= 'From: '.$Nombre.' <'.$Correo.'>' "\r\n";
 
mail($correoreceptor$asunto$mensaje$cabeceras);

header('Location: a donde quieras que te redireccione.');
 

 
?>


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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: blackdrake en Febrero 12, 2016, 02:36:04 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972)

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 (https://underc0de.org/foro/index.php?action=profile;u=51666)

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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 12, 2016, 06:52:15 PM
@rollth (https://underc0de.org/foro/index.php?action=profile;u=30952) voy a probar y te digo.

@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972) 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!
Título: Re:Formulario de contacto + send.php = 404
Publicado por: rollth en Febrero 12, 2016, 06:56:19 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@rollth (https://underc0de.org/foro/index.php?action=profile;u=30952) voy a probar y te digo.

@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972) 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.
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 12, 2016, 07:04:52 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@rollth (https://underc0de.org/foro/index.php?action=profile;u=30952) voy a probar y te digo.

@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972) 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 (https://underc0de.org/foro/index.php?action=profile;u=30952) he probado tu codigo y pasa lo mismo, se queda la pantalla en blanco y no me llega nada x_x

-

@ANTRAX (https://underc0de.org/foro/index.php?action=profile;u=1) 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
Título: Re:Formulario de contacto + send.php = 404
Publicado por: ANTRAX 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: [email protected]
Pass: PasswordGmail

Saludos!
ANTRAX
Título: Re:Formulario de contacto + send.php = 404
Publicado por: 808mafia en Febrero 12, 2016, 11:02:47 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Genial!

Por las dudas te dejo los datos de SMTP de Gmail

Servidor: ssl://smtp.gmail.com
Puerto: 465
User: [email protected]
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) [Seleccionar]
<?php
error_reporting(0);

        
$email $_POST['email'];
$name $_POST['name'];
        
$subject $_POST['subject'];
$message $_POST['message'];

if ($email=='' || $name=='' || $subject=='' || $message==''){

echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";

}else{

    require("../../includes/class.phpmailer.php");
    include("../../includes/class.smtp.php");
    
    
    

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP
$cuerpo="Nombre: ".$name."<br />Email: ".$email."<br />Mensaje: ".$message."<br />";
try {
$mail->Host       "smtp.gmail.com"// SMTP server
$mail->SMTPAuth   true;                  // enable SMTP authentication
$mail->Port       "25";                    // set the SMTP port for the GMAIL server
$mail->Username   "[email protected]"// SMTP account username
$mail->Password   "password";        // SMTP account password
$mail->AddReplyTo($email$name);
$mail->AddAddress('[email protected]''Hello!');
$mail->SetFrom("[email protected]"$name);
$mail->IsHTML(true);
$mail->Subject 'Contacto';

$mail->MsgHTML($cuerpo);
$mail->AltBody 'Nombre: '.$name.' \n<br />'.
'Email: '.$email.' \n<br />'.
'Mensaje: '.$message.' \n<br />';
$mail->Send();
echo "<script>alert('Muchas gracias por contactarnos! Pronto recibirás una respuesta');location.href ='javascript:history.back()';</script>";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
}

?>


A ver si alguien sabe decirme que falla.