Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: 808mafia en Octubre 07, 2015, 03:49:29 PM

Título: [SOLUCIONADO] Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 07, 2015, 03:49:29 PM
Hola tengo este codigo:
Código (html) [Seleccionar]
<section id="footer">
<div class="container">
<header class="major">
<h2>Contact US</h2>
</header>
<form method="post" action="#">
<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>


Que se supone que es un formulario de contacto:

(https://i.gyazo.com/fb42379ccf61762a9c048632be943176.png)

Pero cuando intento enviar un mensaje me da error (405 Not Allowed) porque no se específica el correo receptor. ¿Pueden ayudarme? Estoy intentando aprender html pero voy muy lento  :-\

Saludos!
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 07, 2015, 05:29:57 PM
http://stackoverflow.com/questions/24415376/post-request-not-allowed-405-not-allowed-nginx-even-with-headers-included

Revisa esto.

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: DeBobiPro en Octubre 08, 2015, 03:59:22 PM
En el action debes especificar una hoja ( en la mayoría de los casos PHP) en tu caso hay un "#" lo que el formulario no tendrá ningún efecto.
Por otro lado la hoja a la que llames con el Action debe poder recibir los parámetros por el método POST ( como está definido en tu form) y posteriormente procesarlos.

Espero que te sirva :)!

Saludos!
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 11, 2015, 06:04:07 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el action debes especificar una hoja ( en la mayoría de los casos PHP) en tu caso hay un "#" lo que el formulario no tendrá ningún efecto.
Por otro lado la hoja a la que llames con el Action debe poder recibir los parámetros por el método POST ( como está definido en tu form) y posteriormente procesarlos.

Espero que te sirva :)!

Saludos!

Igualmente aunque pongas # no debería de hacer nada y no sacar el error 405

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 12, 2015, 09:00:29 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el action debes especificar una hoja ( en la mayoría de los casos PHP) en tu caso hay un "#" lo que el formulario no tendrá ningún efecto.
Por otro lado la hoja a la que llames con el Action debe poder recibir los parámetros por el método POST ( como está definido en tu form) y posteriormente procesarlos.

Espero que te sirva :)!

Saludos!

Hola. ¿Puedes ayudarme un poco más? Logro entender lo que dices pero que debo escribir en la otra hoja php para poder enviar el mensaje del formulario? Puedes pasarme un código? Y otra pregunta, no hay ninguna función como mailto para enviar mensajes?

Gracias.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 13, 2015, 05:28:44 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
En el action debes especificar una hoja ( en la mayoría de los casos PHP) en tu caso hay un "#" lo que el formulario no tendrá ningún efecto.
Por otro lado la hoja a la que llames con el Action debe poder recibir los parámetros por el método POST ( como está definido en tu form) y posteriormente procesarlos.

Espero que te sirva :)!

Saludos!

Hola. ¿Puedes ayudarme un poco más? Logro entender lo que dices pero que debo escribir en la otra hoja php para poder enviar el mensaje del formulario? Puedes pasarme un código? Y otra pregunta, no hay ninguna función como mailto para enviar mensajes?

Gracias.

Ejemplo de código, contacto.php

Código (php) [Seleccionar]

$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$para = '[email protected]';
$titulo = 'ASUNTO DEL MENSAJE';
$header = 'From:' . $email;
$msjCorreo = "Nombre: $nombre\n E-Mail: $email\n Mensaje:\n $mensaje";

if ($_POST['submit']) {
if (mail($para, $titulo, $msjCorreo, $header)) {
echo "Enviado";
} else {
echo "Falló el envio";
}
}
?>
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 13, 2015, 10:30:30 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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el action debes especificar una hoja ( en la mayoría de los casos PHP) en tu caso hay un "#" lo que el formulario no tendrá ningún efecto.
Por otro lado la hoja a la que llames con el Action debe poder recibir los parámetros por el método POST ( como está definido en tu form) y posteriormente procesarlos.

Espero que te sirva :)!

Saludos!

Hola. ¿Puedes ayudarme un poco más? Logro entender lo que dices pero que debo escribir en la otra hoja php para poder enviar el mensaje del formulario? Puedes pasarme un código? Y otra pregunta, no hay ninguna función como mailto para enviar mensajes?

Gracias.

Ejemplo de código, contacto.php

Código (php) [Seleccionar]

<?php
$nombre 
$_POST['nombre'];
$email $_POST['email'];
$mensaje $_POST['mensaje'];
$para '[email protected]';
$titulo 'ASUNTO DEL MENSAJE';
$header 'From:' $email;
$msjCorreo "Nombre: $nombre\n E-Mail: $email\n Mensaje:\n $mensaje";

if (
$_POST['submit']) {
if (
mail($para$titulo$msjCorreo$header)) {
echo 
"Enviado";
} else {
echo 
"Falló el envio";
}
}
?>


Hola he copiado el codigo y he creado un archivo llamado contact.php después he modificado action vació "#" para llamar al php así "contact.php" pero cuando intento enviar un mensaje me lleva a la pagina php en formato de texto. Qué he hecho mal?
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 14, 2015, 05:18:35 AM
@808mafia (https://underc0de.org/foro/index.php?action=profile;u=49596)

El código php va entre los siguientes "tags" <?php       ?>

Ej:

<?php echo "hola"; ?>

Si pones echo "hola"; te saldría en texto plano.

Mira a ver si lo tienes.

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: WhiZ en Octubre 14, 2015, 08:48:03 AM
Tenés php instalado? Me suena que viene por ese lado.

Saludos!
WhiZ
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 14, 2015, 09:48:21 AM
@blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972) no me funciona, cuando hago click en "Enviar" me redirige a contact.php pero se queda todo en blanco.

@WhiZ (https://underc0de.org/foro/index.php?action=profile;u=21214) ¿Tengo que instalar php en el cPanel?
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 14, 2015, 09:57:44 AM
Hola,

Te dejo el código que suelo usar yo que siempre funciona...

Formulario HTML:

Código (html5) [Seleccionar]
<form id="form1" name="form1" method="post" action="enviar.php">
<div class="col-sm-6 col-md-6 wow fadeInLeft" data-wow-delay="0.2s">
<div class="controls">
<input class="contact_input" type="text" name="Nombre" placeholder="Nombre">
<i class="fa fa-user"></i>
</div>
<div class="controls">
<input class="contact_input" type="text" name="Correo" placeholder="Email">
<i class="fa fa-envelope-o"></i>
</div>
<div class="controls">
<input class="contact_input" type="text" name="Telefono" placeholder="Teléfono">
<i class="fa fa-phone"></i>
</div>
</div>
<div class="col-sm-6 col-md-6 wow fadeInRight" data-wow-delay="0.2s">
<textarea name="Mensaje" rows="7" class="form-control" placeholder="Mensaje"></textarea>
</div>
<div class="col-sm-6 col-md-12 wow fadeInUp" data-wow-delay="0.5s">
<button type="submit" id="submit" class="btn btn-common">Enviar <i class="fa fa-rocket"></i></button>
</div>
</form>





enviar.php
Código (php) [Seleccionar]
<?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       "mail.zerpens.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($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!
}
}

?>


Recuerda poner las librerías que aparecen en los includes!

Saludos!
ANTRAX
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 14, 2015, 07:44:00 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola,

Te dejo el código que suelo usar yo que siempre funciona...

Formulario HTML:

Código (html5) [Seleccionar]
<form id="form1" name="form1" method="post" action="enviar.php">
<div class="col-sm-6 col-md-6 wow fadeInLeft" data-wow-delay="0.2s">
<div class="controls">
<input class="contact_input" type="text" name="Nombre" placeholder="Nombre">
<i class="fa fa-user"></i>
</div>
<div class="controls">
<input class="contact_input" type="text" name="Correo" placeholder="Email">
<i class="fa fa-envelope-o"></i>
</div>
<div class="controls">
<input class="contact_input" type="text" name="Telefono" placeholder="Teléfono">
<i class="fa fa-phone"></i>
</div>
</div>
<div class="col-sm-6 col-md-6 wow fadeInRight" data-wow-delay="0.2s">
<textarea name="Mensaje" rows="7" class="form-control" placeholder="Mensaje"></textarea>
</div>
<div class="col-sm-6 col-md-12 wow fadeInUp" data-wow-delay="0.5s">
<button type="submit" id="submit" class="btn btn-common">Enviar <i class="fa fa-rocket"></i></button>
</div>
</form>





enviar.php
Código (php) [Seleccionar]
<?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       "mail.zerpens.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($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!
}
}

?>


Recuerda poner las librerías que aparecen en los includes!

Saludos!
ANTRAX

Necesito una cuenta SMTP me podes recomendar algun sitio?

Gracias a todos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 14, 2015, 10:55:14 PM
Si tenes la de GMAIL, podes usarla sin problemas...

Server: smtp.gmail.com
Puerto: 465
User: [email protected]
Pass: tu_contraseña

Saludos!
ANTRAX
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 15, 2015, 08:38:26 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si tenes la de GMAIL, podes usarla sin problemas...

Server: smtp.gmail.com
Puerto: 465
User: [email protected]
Pass: tu_contraseña

Saludos!
ANTRAX

Hola ANTRAX! Te cuento: He compulado los archivos php class.phpmailer y class.smtp y los he metido en una carpeta llamada includes. Después yo quería mantener el código original: <h2>Contact</h2>
</header>
<form method="post" action="#">
<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>
<footer>


Supongo que simplemente quitando ese # para llamar al archivo enviar.php puedo hacerlo pero para no hacerme más líos he decidido usar el código que me proporcionaste (Formulario HTML). Así que lo que hize fué remplazar el código original de contacto (expuesto arriba) por el tuyo. Después configuré la cuenta smtp con un correo de gmail pero cuando intento probar el formulario de contacto me sale esto y no se envía el mensaje: (http://www.subeimagenes.com/img/f6529fa99a71e2daec3c2481758d016e-1486614.png)

Encima cualquiera que use el formulario de contacto puede ver la contraseña de la cuenta gmail usada como smtp xD!

En el archivo .zip tengo un archivo principal llamado index.html, el archivo enviar.php, una carpeta llamada includes que contiene los archivos  class.phpmailer y class.smtp, mis images y assets nada más. Joder, nunca pensé que habría tanto rollo para enviar un mensaje...  :-X
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 15, 2015, 09:28:49 AM
Emm... @808mafia (https://underc0de.org/foro/index.php?action=profile;u=49596)

PHP es un lenguaje de servidor, por tanto, no puedes ejecutarlo como lo estás ejecutando (de forma local)...

Si te fijas, en tu navegador dice file:///C:/Users etc... debería ser algo como: underc0de.org/send.php o bien, localhost/send.php

Por tanto, necesitas subirlo a un servidor o bien, instalarte uno en tu equipo mediante wampp por ejemplo...

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: WhiZ en Octubre 15, 2015, 11:08:44 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
PHP es un lenguaje de servidor, por tanto, no puedes ejecutarlo como lo estás ejecutando (de forma local)...

Exactamente. A eso me refería. Dije que no lo tenía instalado pero, en realidad, quise decir que no se estaba ejecutando como archivo php.

Seguro que eso resuelve todo.

Saludos!
WhiZ
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 15, 2015, 12:39:29 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
PHP es un lenguaje de servidor, por tanto, no puedes ejecutarlo como lo estás ejecutando (de forma local)...

Exactamente. A eso me refería. Dije que no lo tenía instalado pero, en realidad, quise decir que no se estaba ejecutando como archivo php.

Seguro que eso resuelve todo.

Saludos!
WhiZ

Menudo fallo jeje. Os cuento: He subido los archivos en el cpanel, los he extraido y cuando me intento enviar un mensaje la pagina se queda conectando infinitamente: https://gyazo.com/0ff9359c8c2fb9fc2e6da0f779adaf02

He dejado de mi codigo tal como esta en el primer post y he remplazado # para llamar al archivo enviar.php. Después he modificado el archivo enviar.php remplazando $Nombre $Email y $Mensaje por $name $email y $message (que son las id del index original) pero cuando hago click en enviar la página se queda cargando infinitamente.

NOTA: Ahora voy a probar con el form de ANTRAX y comento.

EDITO: Ocurre lo mismo con el formulario de ANTRAX. Primero dice "Los campos marcados con * son obligatorios" a pesar de que relleno todos los campos, después si elimino la opción del teléfono cuando pulso enviar ya no salta el error * pero se queda cargando infinitamente y no se envía el mensaje.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 15, 2015, 08:27:43 PM
Por favor, necesito ayuda!
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 17, 2015, 08:51:16 AM
Básicamente lo estás haciendo mal, el código es funcional, por tanto los subes mal.

Te recomiendo que leas o veas algún video sobre cosas básicas en php y de como subirlas a un servidor.

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 17, 2015, 09:09:02 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Básicamente lo estás haciendo mal, el código es funcional, por tanto los subes mal.

Te recomiendo que leas o veas algún video sobre cosas básicas en php y de como subirlas a un servidor.

Saludos.

Joder, tan tonto no soy hasta ahí llego. Sé subir los archivos a un servidor y lo hago bien, después extraigo los archivos y me funciona la web pero cuando intento enviar el mensaje la pagina se queda cargando y no hace nada!! No se cual sera el fallo? La plantilla html que me he descargado es esta: http://html5up.net/highlights

Gracias por responder.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 17, 2015, 07:46:44 PM
Hola,

Al parecer el problema esta entre la PC y la silla... xD
@808mafia (https://underc0de.org/foro/index.php?action=profile;u=49596), lo que dice @blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972) 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
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 18, 2015, 10:06:37 AM
Hice exactamente lo que dijo @ANTRAX (https://underc0de.org/foro/index.php?action=profile;u=1) y a mi también me va.

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 12:04:18 PM
 ??? 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!
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 01:49:27 PM
En el from

Saludos
ANTRAX
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 07:50:23 PM
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.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 08:16:19 PM
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.

https://mega.nz/#!r9YVjR5B!1PWCC8w-DNH5YNl1SwlEGCSfGoOxA-lAkg7BmewOp48

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

Saludos!
ANTRAX
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 08:25:32 PM
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.

https://mega.nz/#!r9YVjR5B!1PWCC8w-DNH5YNl1SwlEGCSfGoOxA-lAkg7BmewOp48

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.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 08:59:10 PM
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
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 09:02:31 PM
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: http://stackoverflow.com/questions/26866736/setfrom-phpmailer-not-working-in-mydomain
http://stackoverflow.com/questions/20336402/phpmailer-gmail-smtp-not-working-properly

Estoy probandolo en un host de pago cPanel X.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 09:04:05 PM
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
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 09:11:00 PM
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?
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 10:24:23 PM
Crea un mail desde tu Cpanel y ponele esos datos

Saludos!
ANTRAX
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 18, 2015, 11:19:01 PM
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í: <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:

<?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  :-\
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 18, 2015, 11:35:14 PM
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.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 19, 2015, 12:16:44 AM
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 :(
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 19, 2015, 07:41:44 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
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) [Seleccionar]
<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) [Seleccionar]
$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.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 19, 2015, 09:08:25 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
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) [Seleccionar]
<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) [Seleccionar]
$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.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 19, 2015, 02:17:06 PM
Vamos de nuevo...

Paso 1: Descargar la plantilla modificada: https://mega.nz/#!r9YVjR5B!1PWCC8w-DNH5YNl1SwlEGCSfGoOxA-lAkg7BmewOp48

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

Código (php) [Seleccionar]

$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
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 22, 2015, 08:05:38 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vamos de nuevo...

Paso 1: Descargar la plantilla modificada: https://mega.nz/#!r9YVjR5B!1PWCC8w-DNH5YNl1SwlEGCSfGoOxA-lAkg7BmewOp48

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

Código (php) [Seleccionar]

$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...
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 22, 2015, 08:25:06 AM
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
Título: Re:Problema con html (Formulario de contacto)
Publicado por: blackdrake en Octubre 22, 2015, 10:07:50 AM
Con ese error... sigo pensando de que hay algo mal en la configuración del smtp.

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: kid_goth en Octubre 22, 2015, 11:59:03 AM
El Host tiene CURL habilitado?... ponle error_reporting(-1); y que muestre que errores esta pasando :) ... Salutones
Título: Re:Problema con html (Formulario de contacto)
Publicado por: 808mafia en Octubre 29, 2015, 02:47:30 PM
Hola muchas gracias a todos por responder. @ANTRAX (https://underc0de.org/foro/index.php?action=profile;u=1) ya si que puedes cerrar. He dado con la solución añadido SMTPSecure después de SMTPAuth:

             $mail->Host       = "MAIL.DOMINIO.COM"; // SMTP server
                        $mail->SMTPAuth   = true;                  // enable SMTP authentication
                      -> $mail->SMTPSecure = "ssl";               // SMTPSecure
                        $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';


Y por fin ha desaparecido el  SMTP Error: Could not authenticate y he podido enviar el mensaje!

Muchas gracias a todos por vuestra ayuda de verdad sin todas vuestras respuestas no lo hubiese conseguido porque ya me estaba frustrando xD

Saludos.
Título: Re:Problema con html (Formulario de contacto)
Publicado por: ANTRAX en Octubre 29, 2015, 02:59:07 PM
Esaaaaaaaaaaa!!!!! Muy buen trabajo bro!!!!
Me alegro mucho de que hayas podido solucionarlo!

Saludos!
ANTRAX