PHP - Problema con formulario PHP y caracteres Rusos

   
Vista:

Problema con formulario PHP y caracteres Rusos

Publicado por San s_marti@terra.es (8 intervenciones) el 23/01/2013 16:07:59
Llevo unos dias trabajando en unaweb la cual posee un formulario php, tuve problemas con el tema de los acentos y las ñ al enviarlo pero pude solucionarlo con el comando "utf_encode", pero ahora tengo otro problema.

Esta web tiene un gran publico Ruso, de forma que hice una parte en ruso y el formulario me envia los caracteres de forma extraña, si en el cuerpo del mensaje escribo, por ejemplo:
Наши изделия имеют длинную

El correo me llega con unos caracteres parecidos a estos:
СвяЕаться с намиСвяЕаться Ñ

Ya no se que hacer, estoy desesperado.......¿alguien podria ayudarme?
Os dejo el codigo de mi PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
//Importamos las variables del formulario de contacto
@$nombre = addslashes($_POST['nombre']);
@$email = addslashes($_POST['email']);
@$mensaje= addslashes($_POST['mensaje']);
@$telefono = addslashes($_POST['telefono']);
 
 
//Preparamos el mensaje de contacto
$charset = "windows-1251";
 
$cabeceras = "From: $email\n" //La persona que envia el correo
 . "Reply-To: $email\n";
$cabeceras .= "Content-Type: text/plain; charset={$charset}";
 
$asunto = "Contacto desde la web ";
$email_to = "s_marti@terra.es";
 
 
$contenido = "$nombre se ha comunicado a traves del formulario de la web\n"
. "\n"
. "Nombre: $nombre\n"
. "Email: $email\n"
. "Telefono: $telefono\n"
. "Mensaje: $mensaje\n"
 
. "\n";
$contenido = utf8_encode($contenido);
 
//Enviamos el mensaje y comprobamos el resultado
if (@mail($email_to, $asunto ,$contenido ,$cabeceras )) {
 
//Si el mensaje se envía muestra una confirmación
die("<br> Gracias por rellenar este formulario. <br>En breve nos pondremos en contacto con usted.");
}else{
//Si el mensaje no se envía muestra el mensaje de error
die("Error: Su información no pudo ser enviada, intente más tarde");
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 23/01/2013 16:43:09
Hola San, prueba a poner como charset utf-8 en el envío del correo y en la web...

Para ponerlo en la web seria algo así en la cabecera <head>:
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


Si nos puedes comentar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 23/01/2013 16:55:27
Me llegó este correo:
prueba I desde la web se ha comunicado a traves del formulario de la web

Nombre: prueba I desde la web
Email: s_marti@terra.es
Telefono: 123456789
Mensaje: &#1043;&#1106;&#1042;&#1038;&#1043;&#1106;&#1042;&#1030;&#1043;‘&#1042;&#1039;&#1043;&#1106;&#1042;•&#1043;&#1106;&#1042;°&#1043;‘&#1042;‚&#1043;‘&#1042;&#1034;&#1043;‘&#1042;&#1027;&#1043;‘&#1042;&#1039; &#1043;‘&#1042;&#1027; &#1043;&#1106;&#1042;&#1029;&#1043;&#1106;&#1042;°&#1043;&#1106;&#1042;&#1112;&#1043;&#1106;&#1042;&#1105; &#1043;&#1106;&#1042;&#1038;&#1043;&#1106;&#1042;&#1030;&#1043;‘&#1042;&#1039;&#1043;&#1106;&#1042;•&#1043;&#1106;&#1042;°&#1043;‘&#1042;‚&#1043;‘&#1042;&#1034;&#1043;‘&#1042;&#1027;&#1043;‘&#1042;&#1039; &#1043;‘&#1042;&#1027; &#1043;&#1106;&#1042;&#1029;&#1043;&#1106;&#1042;°&#1043;&#1106;&#1042;&#1112;&#1043;&#1106;&#1042;&#1105; &#1043;&#1106;&#1042;&#1038;&#1043;&#1106;&#1042;&#1030;&#1043;‘&#1042;&#1039;&#1043;&#1106;&#1042;•&#1043;&#1106;&#1042;°&#1043;‘&#1042;‚&#1043;‘&#1042;&#1034;&#1043;‘&#1042;&#1027;&#1043;‘&#1042;&#1039; &#1043;‘&#1042;&#1027; &#1043;&#1106;&#1042;&#1029;&#1043;&#1106;&#1042;°&#1043;&#1106;&#1042;&#1112;&#1043;&#1106;&#1042;&#1105;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 23/01/2013 16:57:43
Bueno aqui no aparecen bien los caracteres, pero lo explico;

ahora aparecen otros, pero no corresponde a lo escrito en el formulario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 23/01/2013 20:17:15
has probado a quitar el utf_encode()?

Si la web escribe en utf8 y envías los valores en utf8, se tendrían que ver correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por Alexis Ochoa (92 intervenciones) el 24/01/2013 00:26:34
¿Podrías mostrar el contenido de la variable $_POST['mensaje'] con el mismo ejemplo que realizaste? Así se puede tener una mejor idea de lo que llega al script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 24/01/2013 09:21:06
Como hago esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 24/01/2013 20:34:46
Puedes hacerlo así:
1
2
3
echo "<pre>";
print_r($_POST);
echo "</pre>";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 25/01/2013 17:33:45
Me devuelve una cadena correcta:
Array
(
[nombre] => &#1089;&#1074;&#1103;&#1078;&#1077;&#1084;&#1089;&#1103; &#1089; &#1074;&#1072;&#1084;&#1080;. (correcto)
[empresa] => &#1089;&#1074;&#1103;&#1078;&#1077;&#1084;&#1089;&#1103; &#1089; &#1074;&#1072;&#1084;&#1080;. (correcto)
[email] => s_marti@terra.es
)

Aunque en el foro no se visualiza, pero se ve corecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 25/01/2013 17:35:29
En cambio en el correo que llega no se ve correcto:

свяжемся с вами. ha enviado un mensaje desde la web SOHER en idioma Ruso

Nombre: свяжемся с вами.
Email: s_marti@terra.es
Empresa: свяжемся с вами.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 26/01/2013 09:34:06
Nos puedes mostrar la cabecera del correo?? seguro que lo esta enviando en formato utf-8?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 26/01/2013 09:43:49
No se como se muestra la cabecera del correo....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 26/01/2013 10:51:21
Hola San, que programa de correo estas utilizando?
Hay la posibilidad de ver el código fuente del correo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con formulario PHP y caracteres Rusos

Publicado por San (8 intervenciones) el 26/01/2013 12:13:43
Gracias a todos, acabo de dar con la respuesta. en primer lugar la codificación de be estar, taal y como me deceiais en UTF-8

y suprimir del codigo la sentencia utf8_encode (ya que no es necesaria)

El segundo problema venia por la codificación del gestor de correo (outlook) me convertia el texto en Iso-Windows.

Ha sido cambiarlo a UFT-8 y solucionado.

Gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Problema con formulario PHP y caracteres Rusos

Publicado por xve (5523 intervenciones) el 27/01/2013 10:01:13
Gracias por comentarlo!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar