Foros del Web » Programando para Internet » PHP »

Recibir varaible con acentos y ñ

Estas en el tema de Recibir varaible con acentos y ñ en el foro de PHP en Foros del Web. Hola, Tengo un formulario flash que me envia los datos mediante loadVars a un PHP. El problema es que el PHP no recibe bien las ...
  #1 (permalink)  
Antiguo 26/03/2009, 08:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Recibir varaible con acentos y ñ

Hola, Tengo un formulario flash que me envia los datos mediante loadVars a un PHP.

El problema es que el PHP no recibe bien las variables porque no reconoce los acentos o ñ's...

Para recibir las variables de flash uso:


Código:
$nombre_php = $_POST['nombre'];
$nombre_php = utf8_decode($nombre_php);

Alguien sabe cual es el problema? :?

Muchas gracias!
  #2 (permalink)  
Antiguo 26/03/2009, 08:44
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Recibir varaible con acentos y ñ

Proba usando:
urlencode();

en ves de:
utf8_decode();
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #3 (permalink)  
Antiguo 26/03/2009, 09:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Recibir varaible con acentos y ñ

Gracias por tu respuesta farra, pero creo que el problema persiste...

Lo que estoy haciendo es recoger las variables de flash (como veras lo estoy intentando de diversas formas) y enviarme un mail con el contenido de las variables...

Al ejecutar el PHP me hace un echo con el contenido de $nombre_php (variable de prueba con acentos y ñ) mostrandome (?) y por lo tanto el mail que me envia tambien me sale ?.

Aqui va el codigo...

Código:
<?php 

$nombre_php = "éñç";
$nombre_php = utf8_decode($nombre_php);
echo ($nombre_php);

$dni_php = $_POST['dni'];
$dni_php = utf8_decode($dni_php);

$fecha_php = utf8_decode($_POST['data_naixement']); 

$domicilio_php = urlencode($_POST['domicili']); 

$email2_php = "[email protected]";

$Name = $nombre_php;
$email = $email_php; 
$recipient = $email2_php; 
$mail_body = '
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin tÃ*tulo</title>
</head>

<body>
<p>FORMULARIO DE ' .$nombre_php.'</p>
<table width="400" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="142">Nombre</td>
    <td width="258">' .$nombre_php.'</td>
  </tr>
  <tr>
    <td>DNI</td>
    <td>' .$dni_php.'</td>
  </tr>
  <tr>
    <td>Fecha de nacimientot</td>
    <td>' .$fecha_php.'</td>
  </tr>
  <tr>
    <td>Población</td>
    <td>' .$domicilio_php.'</td>
  </tr>
</table>
</body>
';

$subject = $nombre_php . " ha enviado el formulario";
$header = "From: ". $Name . " <" . $email . ">\r\nContent-type: text/html\r\n"; 

mail($recipient, $subject, $mail_body, $header); 
echo "enviado";

?>

***** ACTUALIZACIÓN *****
Al cambiar $nombre_php = utf8_decode($nombre_php); por $nombre_php = urlencode($nombre_php); el trace($nombre_php) me devuelve %E9%F1%E7...
*************************


Como podría solucionarlo?

Muchas gracias!
  #4 (permalink)  
Antiguo 26/03/2009, 09:49
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Recibir varaible con acentos y ñ

puedes usar:
htmlentities()
o htmlspecialchars()

saludines!
  #5 (permalink)  
Antiguo 26/03/2009, 11:01
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Recibir varaible con acentos y ñ

Si puedes modificar el flash, antes de enviar los datos, codifícalos con encodeURI (no sé ActionScript, pero en JavaScript es así).
  #6 (permalink)  
Antiguo 26/03/2009, 11:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 93
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Recibir varaible con acentos y ñ

Muchas gracias!

Ahora funciona correctamente. En el email ya llegan los caracteres especiales como los acentos y las ñ...

Solo queda un problema: En el "Subject" y en el "From:" del mail que me envia php (con $nombre_php) no me salen los acentos ni las ñ... (me sale &uacute etc...)

Alguna idea??

Código:
$email2_php = "[email protected]";

$Name = $nom_php; 
$email = $email_php;
$recipient = $email2_php;
$mail_body = '

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin tÃ*tulo</title>
</head>

<body>
<p>BUTLLETA DE SOCI DE ' .$nom_php.'</p>
<table width="400" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td width="142">Nom</td>
    <td width="258">' .$nom_php.'</td>
  </tr>
  <tr>
    <td>DNI</td>
    <td>' .$dni_php.'</td>
  </tr>
  <tr>
    <td>Data de Naixement</td>
    <td>' .$data_php.'</td>
  </tr>
  <tr>
    <td>Domicili</td>
    <td>' .$domicili_php.'</td>
  </tr>
  <tr>
    <td>Població</td>
    <td>' .$poblacio_php.'</td>
  </tr>
  <tr>
    <td>Telèfon</td>
    <td>' .$telefon_php.'</td>
  </tr>
  <tr>
    <td>E-mail</td>
    <td>' .$email_php.'</td>
  </tr>
  <tr>
    <td>Titular del Compte</td>
    <td>' .$titular_php.'</td>
  </tr>
  <tr>
    <td>Banc</td>
    <td>' .$banc_php.'</td>
  </tr>
  <tr>
    <td>Compte</td>
    <td>' .$compte_php.'</td>
  </tr>
  <tr>
    <td>Modalitat</td>
    <td>' .$tipus_php.'</td>
  </tr>
</table>
</body>
';

$subject = $nom_php . " Ha omplert la butlleta de soci"; 
$header = "From: ". $Name . " <" . $email . ">\r\nContent-type: text/html\r\n"; 

mail($recipient, $subject, $mail_body, $header); 
echo " envia el mail ";
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.