Hola tengo este codigo: <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!
http://stackoverflow.com/questions/24415376/post-request-not-allowed-405-not-allowed-nginx-even-with-headers-included
Revisa esto.
Saludos.
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!
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.
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.
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
$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";
}
}
?>
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
<?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?
@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.
Tenés php instalado? Me suena que viene por ese lado.
Saludos!
WhiZ
@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?
Hola,
Te dejo el código que suelo usar yo que siempre funciona...
Formulario HTML:
<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<?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
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:
<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
<?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.
Si tenes la de GMAIL, podes usarla sin problemas...
Server: smtp.gmail.com
Puerto: 465
User:
[email protected]Pass: tu_contraseña
Saludos!
ANTRAX
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
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.
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
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.
Por favor, necesito ayuda!
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.
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.
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
Hice exactamente lo que dijo @ANTRAX (https://underc0de.org/foro/index.php?action=profile;u=1) 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!
En el from
Saludos
ANTRAX
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.
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
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.
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: 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.
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
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
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 :-\
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:
<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:
$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:
<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:
$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.
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:
$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: https://mega.nz/#!r9YVjR5B!1PWCC8w-DNH5YNl1SwlEGCSfGoOxA-lAkg7BmewOp48
Paso 2: Editar el archivo enviar.php modificando lo que esta en mayúsculas:
$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
Con ese error... sigo pensando de que hay algo mal en la configuración del smtp.
Saludos.
El Host tiene CURL habilitado?... ponle error_reporting(-1); y que muestre que errores esta pasando :) ... Salutones
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.
Esaaaaaaaaaaa!!!!! Muy buen trabajo bro!!!!
Me alegro mucho de que hayas podido solucionarlo!
Saludos!
ANTRAX