[SOLUCIONADO] Problema con html (Formulario de contacto)

Iniciado por 808mafia, Octubre 07, 2015, 03:49:29 PM

Tema anterior - Siguiente tema

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

Hola,

Al parecer el problema esta entre la PC y la silla... xD
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, lo que dice @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es cierto.. El código es funcional. De hecho subi tu plantilla a mi host, le coloqué el código que te pasé mas arriba y me deja enviar y recibir correos sin problemas.

El código que te pasé, funciona sin problemas!

Saludos!
ANTRAX


Hice exactamente lo que dijo @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y a mi también me va.

Saludos.



 ??? voy a probar de nuevo, supongo que será fallo mío. Solo una pregunta más: En el código de ANTRAX ¿donde se específica el destinatario del mensaje?

Saludos!


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el from

Saludos
ANTRAX

¿En que línea del from? Perdon por tanta pregunta pero he revisado el código y no sé donde poner el destinatario.

Saludos y gracias.

Detesto a los usuarios como vos que  piden todo hecho.
Acá te dejo todo hecho, solo tenes que cambiar los datos que estan en mayuscula por los tuyos.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Si sigues así, siempre serás un ignorante. Prueba, equivocate y vuelve a probar.. así se hacen los programadores..

Saludos!
ANTRAX


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Detesto a los usuarios como vos que  piden todo hecho.
Acá te dejo todo hecho, solo tenes que cambiar los datos que estan en mayuscula por los tuyos.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Si sigues así, siempre serás un ignorante. Prueba, equivocate y vuelve a probar.. así se hacen los programadores..

Saludos!
ANTRAX

Estoy intentandolo una y otra vez y por eso vuelvo aquí a preguntar, en las líneas 43 y 44 no sé a que email se refiere, es decir ahí debo poner el destinatario? $mail->AddAddress('MAIL', 'NOMBRE');
         $mail->SetFrom("MAIL FROM", $Nombre)

Esa es la parte que no entiende que mails debo poner ahí? Estoy poniendo el mismo que uso para la cuenta smtp en addaddress y en setfrom y la pagina se queda cargando y no envía el mensaje. Perdona por intentar aprender.

Hola, no estas intentando aprender.. estas esperando a que te den todas las respuestas, de lo contrario intentarías probar alternativas..
Estas subiendo todo el código a un host o lo estas probando en local?
El host es free o es de pago?

Si pones en todos el mismo mail, debería funcionarte igual

Saludos!
ANTRAX


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola, no estas intentando aprender.. estas esperando a que te den todas las respuestas, de lo contrario intentarías probar alternativas..
Estas subiendo todo el código a un host o lo estas probando en local?
El host es free o es de pago?

Si pones en todos el mismo mail, debería funcionarte igual

Saludos!
ANTRAX

Estoy intentandolo joder. Para que veas que no miento: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Estoy probandolo en un host de pago cPanel X.

Entonces es algo que estas poniendo mal vos...
Te he dado el codigo masticado. Solo tienes que completar unos 4 o 5 campos y ya...

Saludos!
ANTRAX


Octubre 18, 2015, 09:11:00 PM #30 Ultima modificación: Octubre 18, 2015, 09:12:35 PM por 808mafia
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Entonces es algo que estas poniendo mal vos...
Te he dado el codigo masticado. Solo tienes que completar unos 4 o 5 campos y ya...

Saludos!
ANTRAX

Uso tu codigo html.  Enviar.php lo edito así:

<?php
            error_reporting(0);
           
            $Nombre = $_POST['Nombre'];
            $Correo = $_POST['Correo'];
            $Mensaje = $_POST['Mensaje'];
           
            if ($Nombre=='' || $Correo=='' || $Mensaje==''){
           
                    echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";
           
            }else{
           
                date_default_timezone_set('America/Argentina/Buenos_Aires');
                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: ".$Nombre."<br />Email: ".$Correo."<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   = "PASSWORD";        // SMTP account password
                            $mail->AddReplyTo($Correo, $Nombre);
                            $mail->AddAddress('[email protected]', 'NOMBRE');
                            $mail->SetFrom("[email protected]", $Nombre);
                            $mail->IsHTML(true);
                            $mail->Subject = 'ASUNTO DEL MAIL';
                           
                            $mail->MsgHTML($cuerpo);
                            $mail->AltBody = 'Nombre: '.$Nombre.' \n<br />'.
                            'Email: '.$Correo.' \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 cuando intento enviar el mensaje se queda cargando. En el host subo el archivo index.html que llama al archivo enviar.php que contiene lo que te acabo de mostrar, y también subo 3 carpetas (assets, images e includes) Includes contiene 2 archivos, class.phpmailer y class.smtp ¿No sé que estará fallando?

Crea un mail desde tu Cpanel y ponele esos datos

Saludos!
ANTRAX


Octubre 18, 2015, 11:19:01 PM #32 Ultima modificación: Octubre 18, 2015, 11:21:22 PM por 808mafia
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Crea un mail desde tu Cpanel y ponele esos datos

Saludos!
ANTRAX

Tampoco, incluso configuré el smtp y nada se queda cargando la pagina y no envia el mensaje. La plantilla html esta así:
Código: php
<h2>Get in touch</h2>
</header>
<form method="post" action="enviar.php">
<div class="row uniform">
<div class="6u 12u$(xsmall)"><input type="text" name="name" id="name" placeholder="Name" /></div>
<div class="6u$ 12u$(xsmall)"><input type="email" name="email" id="email" placeholder="Email" /></div>
<div class="12u$"><textarea name="message" id="message" placeholder="Message" rows="4"></textarea></div>
<div class="12u$">
<ul class="actions">
<li><input type="submit" value="Send Message" class="special" /></li>
</ul>
</div>
</div>
</form>
</div>


Supongo que para que funcione mi formulario con el archivo .php que me has dado debo cambiar name="name" por name="Nombre", name="email" por name="Correo" y name=message por name=Mensaje no? Corrigeme si me equivoco. El archivo enviar.php contiene lo siguiente:

Código: php
<?php
            error_reporting(0);
           
            $Nombre = $_POST['Nombre'];
            $Correo = $_POST['Correo'];
            $Mensaje = $_POST['Mensaje'];
           
            if ($Nombre=='' || $Correo=='' || $Mensaje==''){
           
                    echo "<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";
           
            }else{
           
                date_default_timezone_set('America/Argentina/Buenos_Aires');
                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: ".$Nombre."<br />Email: ".$Correo."<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   = "PASSWORD";        // SMTP account password
                            $mail->AddReplyTo($Correo, $Nombre);
                            $mail->AddAddress('[email protected]', 'NOMBRE');
                            $mail->SetFrom("[email protected]", $Nombre);
                            $mail->IsHTML(true);
                            $mail->Subject = 'ASUNTO DEL MAIL';
                           
                            $mail->MsgHTML($cuerpo);
                            $mail->AltBody = 'Nombre: '.$Nombre.' \n<br />'.
                            'Email: '.$Correo.' \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!
                    }
            }
           
    ?>


Como dije antes, cuando testeo en el host no se me olvida subir los includes y la pagina se queda cargando interminablemente cuando intento enviar un mensaje desde el formulario de contacto.

Sinceramente, ya desisto me estoy comiendo la cabeza durante días y no encuentro solución de ninguna manera.

Gracias por vuestra ayuda podeis cerrar el tema si quereis no creo que siga con esto la programación no es lo mio  :-\

Por favor... Subi el codigo tal cual te lo pase y solo modifica lo que esta en mayúsculas, solo eso...  (archivo  PHP)
Todo lo que esta en mayúsculas lo tenes que cambiar. Eso es todo.


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Por favor... Subi el codigo tal cual te lo pase y solo modifica lo que esta en mayúsculas, solo eso...  (archivo  PHP)
Todo lo que esta en mayúsculas lo tenes que cambiar. Eso es todo.

Ya lo intenté así ANTRAX y nada, sigo con el mismo problema la pagina se queda cargando. De todos modos, lo he intentado de nuevo y nada :(

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Por favor... Subi el codigo tal cual te lo pase y solo modifica lo que esta en mayúsculas, solo eso...  (archivo  PHP)
Todo lo que esta en mayúsculas lo tenes que cambiar. Eso es todo.

Ya lo intenté así ANTRAX y nada, sigo con el mismo problema la pagina se queda cargando. De todos modos, lo he intentado de nuevo y nada :(

Obviamente lo haces mal, en tu plantilla los campos tienen los nombres en inglés:

Código: html5
<div class="6u 12u$(xsmall)"><input type="text" name="name" id="name" placeholder="Name" /></div>
<div class="6u$ 12u$(xsmall)"><input type="email" name="email" id="email" placeholder="Email" /></div>
<div class="12u$"><textarea name="message" id="message" placeholder="Message" rows="4"></textarea></div>


En cambio en el php lo recoges con nombre en español:

Código: php
$Nombre = $_POST['Nombre'];
            $Correo = $_POST['Correo'];
            $Mensaje = $_POST['Mensaje'];


Como dijo @ANTRAX el código es funcional y está perfectamente bien explicado para que seas capaz de editarlo, cuando se intenta hacer algo en un lenguaje, se recomienda tener nociones básicas, como en este caso de PHP.

Si usases nuestro código y no tu plantilla te funcionaría, o si supieses algo de PHP, te habrías dado cuenta de ese error y lo hubieses modificado.

Básicamente estás intentando construir una casa por el tejado, deberías empezar por los cimientos. PHP es fácil, siempre y cuando se empieza por donde se debe empezar, pero no esperes que te den todo hecho, sobre todo, cuando no pruebas, investigas y aprendes por tu cuenta.

Saludos.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Por favor... Subi el codigo tal cual te lo pase y solo modifica lo que esta en mayúsculas, solo eso...  (archivo  PHP)
Todo lo que esta en mayúsculas lo tenes que cambiar. Eso es todo.

Ya lo intenté así ANTRAX y nada, sigo con el mismo problema la pagina se queda cargando. De todos modos, lo he intentado de nuevo y nada :(

Obviamente lo haces mal, en tu plantilla los campos tienen los nombres en inglés:

Código: html5
<div class="6u 12u$(xsmall)"><input type="text" name="name" id="name" placeholder="Name" /></div>
<div class="6u$ 12u$(xsmall)"><input type="email" name="email" id="email" placeholder="Email" /></div>
<div class="12u$"><textarea name="message" id="message" placeholder="Message" rows="4"></textarea></div>


En cambio en el php lo recoges con nombre en español:

Código: php
$Nombre = $_POST['Nombre'];
            $Correo = $_POST['Correo'];
            $Mensaje = $_POST['Mensaje'];


Como dijo @ANTRAX el código es funcional y está perfectamente bien explicado para que seas capaz de editarlo, cuando se intenta hacer algo en un lenguaje, se recomienda tener nociones básicas, como en este caso de PHP.

Si usases nuestro código y no tu plantilla te funcionaría, o si supieses algo de PHP, te habrías dado cuenta de ese error y lo hubieses modificado.

Básicamente estás intentando construir una casa por el tejado, deberías empezar por los cimientos. PHP es fácil, siempre y cuando se empieza por donde se debe empezar, pero no esperes que te den todo hecho, sobre todo, cuando no pruebas, investigas y aprendes por tu cuenta.

Saludos.

Ya he probado el código cambiando los nombres en inglés, y también los he puesto en español para que recoga la información del archivo enviar.php que me dejó Antrax y nada.

CitarSupongo que para que funcione mi formulario con el archivo .php que me has dado debo cambiar name="name" por name="Nombre", name="email" por name="Correo" y name=message por name=Mensaje no? Corrigeme si me equivoco.

Lo he probado de miles de maneras, he buscado y rebucasdo en foros y blogs y nada, no se porque dais por hecho que no me estoy esforzando si abro un tema para preguntar algo es porque ya he intentado buscar soluciones por mi cuenta y no he podido y pese a ello sigo intentandolo sin exito por eso vuelvo al foro.

Gracias por responder.

Octubre 19, 2015, 02:17:06 PM #37 Ultima modificación: Octubre 19, 2015, 02:21:42 PM por ANTRAX
Vamos de nuevo...

Paso 1: Descargar la plantilla modificada: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Paso 2: Editar el archivo enviar.php modificando lo que esta en mayúsculas:

Código: php

$mail->Host       = "MAIL.DOMINIO.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   = "CONTRASEÑA_DEL_CORREO";        // SMTP account password
$mail->AddReplyTo($Correo, $Nombre);
$mail->AddAddress('[email protected]', 'WEBSITE');
$mail->SetFrom("[email protected]", $Nombre);
$mail->IsHTML(true);
$mail->Subject = 'ASUNTO_MENSAJE';


Paso 3: Copiar todo lo que esta en la etiqueta form del template que adjuneté y pegarlo reemplazarlo por el form de tu sitio (index.html)

Te recomiendo que crees en tu cpanel un mail @tudominio.com y configures ese.
Cuando creas el mail, veras una flechita y hay una opción llamada "configurar cliente" o algo asi.. Ahi te mostrará el puerto y el servidor de SMTP que debes usar.

Saludos!
ANTRAX


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vamos de nuevo...

Paso 1: Descargar la plantilla modificada: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Paso 2: Editar el archivo enviar.php modificando lo que esta en mayúsculas:

Código: php

$mail->Host       = "MAIL.DOMINIO.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   = "CONTRASEÑA_DEL_CORREO";        // SMTP account password
$mail->AddReplyTo($Correo, $Nombre);
$mail->AddAddress('[email protected]', 'WEBSITE');
$mail->SetFrom("[email protected]", $Nombre);
$mail->IsHTML(true);
$mail->Subject = 'ASUNTO_MENSAJE';


Paso 3: Copiar todo lo que esta en la etiqueta form del template que adjuneté y pegarlo reemplazarlo por el form de tu sitio (index.html)

Te recomiendo que crees en tu cpanel un mail @tudominio.com y configures ese.
Cuando creas el mail, veras una flechita y hay una opción llamada "configurar cliente" o algo asi.. Ahi te mostrará el puerto y el servidor de SMTP que debes usar.

Saludos!
ANTRAX

Hago todo correctamente, después ocurre esto cuando intento enviar el mensaje: SMTP Error: Could not authenticate.

He comprobado el host, puerto, email y pass del smtp y todo es correcto, pese a ello he probado a cambiarlo y nada, sigue dando el mismo error...

Bueno, al menos ahora el problema es de la cuenta de SMTP.
No tienes otro host (no gratuito) en donde puedas probarlo?
Lo otro que puedes hacer, es pedirle al del soporte de tu host, quizas tenga algo bloqueado.
Y si piensas cambiar de host, avisame y puedo recomendarte unos baratos y muy buenos!

Saludos!
ANTRAX