Hola a todos como andan... estoy armando un formulario de contacto con php +jquery que valida en el momento.
El problema que tengo es que cuando se envía, los carácteres especial (ya sean tildes, ñ. etc) llegan mal al correo electrónico.
Probé usando la codificación ISO y UTF-8 tanto en la página del contacto como en el php que hace el envío y sigue sin funcionar...
(aclaro que la codificación la agregué en el código (<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />) y también cuando guarde el .txt (ANSI - UTF -8).
Lei en un montón de posts en el foro que es posible modificar los carácteres por código HTML (por ej: Á), lo intenté pero no estoy seguro donde agregarlo, y no funciona. Agradecería si alguien me puede dar una mano... dejo aquí el código del .JS y el .PHP por si alguien me puede ayudar:
JS
Código:
$(function() {
$('.error').hide();
$('input.text-input').css({backgroundColor:"#FFFFFF"});
$('input.text-input').focus(function(){
$(this).css({backgroundColor:"#FFDDAA"});
});
$('input.text-input').blur(function(){
$(this).css({backgroundColor:"#FFFFFF"});
});
$(".button").click(function() {
// validate and process form
// first hide any error messages
$('.error').hide();
var inp1 = $("input#inp1").val();
if (inp1 == "") {
$("label#inp1_error").show();
$("input#inp1").focus();
return false;
}
var inp2 = $("input#inp2").val();
if (inp2 == "") {
$("label#inp2_error").show();
$("input#inp2").focus();
return false;
}
var inp3 = $("input#inp3").val();
if (inp3 == "") {
$("label#inp3_error").show();
$("input#inp3").focus();
return false;
}
var dataString = 'inp1='+ inp1 + '&inp2=' + inp2 + '&inp3=' + inp3;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "bin/process.php",
data: dataString,
success: function() {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Formulario enviado con exito!</h2>")
.append("<p>Proximamente recibira la respuesta</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='check.png' />");
});
}
});
return false;
});
});
runOnLoad(function(){
$("input#name").select().focus();
});
PHP Código PHP:
<?php
if ((isset($_POST['inp1'])) && (strlen(trim($_POST['inp1'])) > 0)) {
$inp1 = stripslashes(strip_tags($_POST['inp1']));
} else {$inp1 = 'No inp1 entered';}
if ((isset($_POST['inp2'])) && (strlen(trim($_POST['inp2'])) > 0)) {
$inp2 = stripslashes(strip_tags($_POST['inp2']));
} else {$inp2 = 'No inp2 entered';}
if ((isset($_POST['inp3'])) && (strlen(trim($_POST['inp3'])) > 0)) {
$inp3 = stripslashes(strip_tags($_POST['inp3']));
} else {$inp3 = 'No inp3 entered';}
ob_start();
?>
<div style="width:641px;margin:0 auto;">
<table width="641" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Nombre: <?=$inp1;?></td>
</tr>
<tr>
<td>Apellido: <?=$inp2;?></td>
</tr>
<tr>
<td>Empresa: <?=$inp3;?></td>
</tr>
</table>
</div></body></html>
<?
$body = ob_get_contents();
$to = '[email protected]';
$email = '[email protected]';
$fromaddress = "[email protected]";
$fromname = "Online Contact";
require("phpmailer.php");
$mail = new PHPMailer();
$mail->From = "[email protected]";
$mail->FromName = "TEST";
$mail->AddAddress("[email protected]","Name 1");
$mail->AddAddress("[email protected]","Name 2");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Asunto del formulario";
$mail->Body = $body;
$mail->AltBody = "This is the text-only body";
if(!$mail->Send()) {
$recipient = '[email protected]';
$subject = 'Contact form failed';
$content = $body;
mail($recipient, $subject, $content, "From: [email protected]\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
exit;
}
?>
Desde ya muchas gracias!
Saludos!