Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2011, 07:44
margancia
 
Fecha de Ingreso: febrero-2009
Mensajes: 193
Antigüedad: 15 años, 2 meses
Puntos: 3
Mi problema con tildes en formulario

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: &Aacute;), 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!