Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2010, 03:08
seragui
 
Fecha de Ingreso: diciembre-2008
Mensajes: 65
Antigüedad: 15 años, 4 meses
Puntos: 0
Acentos en recogida de datos.

Hola a todos.

Se que este tema se trató mucho, pero no encuentro como solucionarlo.

Tengo un formulario html en el que recojo datos mediante una llamada a un archivo PHP que recoge los datos de los campos y me los envía a una dirección de email.

Este es el código del archivo PHP:
Código PHP:
<?php

/* Set e-mail recipient */
$myemail  "[email protected]";
$subject "Asunto: Recogida de datos"


/* Check all form inputs using check_input function */
$nombre check_input($_POST['nombre'], "Nombre");
$apellidos check_input($_POST['apellidos'], "Apellidos");
$telefono check_input($_POST['telefono'], "Telefono");
$provincia check_input($_POST['provincia'], "Provincia");
$email    check_input($_POST['email'], "Email");


/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/"$email))
{
    
show_error("email incorrecto");
}


/* Let's prepare the message for the e-mail */
$message "Datos de contacto usuario

Name: $nombre
Apellidos: $apellidos
Telefono: $telefono
Provincia: $provincia
E-mail: $email

Fin del mensaje
"
;

/* Send the message using mail() function */
mail($myemail$subject$message);

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data$problem='')
{
    
$data trim($data);
    
$data stripslashes($data);
    
$data htmlspecialchars($data);
    if (
$problem && strlen($data) == 0)
    {
        
show_error($problem);
    }
    return 
$data;
}

function 
show_error($myError)
{
?>
    <html>
    <body>

    <b>Por favor, verifique los siguientes errores:</b><br />
    <?php echo $myError?>

    </body>
    </html>
<?php
exit();
}
?>
Funciona OK, pero cuando tiene que recoger un nombre o apellidos con acentos, en la información que llega al mail, el acento aparece como una ?.

He leido en los post que puede ser por la cofificación UTF8.

He probado a añadir a la variable apellidos el siguiente código:
Código PHP:
$apellidos utf8_encode($apellidos); 
pero nada.

He de decir que soy un novel en PHP por eso mis limitaciones e ir aprendiendo.

Espero que alguien me ayude ya que no se por donde continuar para solucionarlo.

Saludos y gracias de antemano.

Última edición por seragui; 22/03/2010 a las 05:17