Hola amigos...
Tengo un problemas cuando inserto datos en MySql desde un formulario de Html y PHP.
El problema lo tengo las eÑes y eñes (Ñ,ñ)... y supongo que también me pasará lo mismo con los acentos.
Esta es la configuración que tengo a ver si alguien me puede dar una pista, porque no doy con el problema... que en principio creo que debe estar en la codificación de algo, pero no doy pie con bola.
La configuración se reparte en dos equipo:
Equipo A: Servidor de MySql al que se accede en red local.
Sistema Operativo: Linux Version MySql: 5.0.67 Codificación por defecto de MySql y de las bases de datos creadas incluso todos los campos: UTF-8 Servidor Web para el phpmyadmin: Apache 2.2.6 Versión de PHP: 5 Versión phmypadmin: 3.2.0-beta1
Las codificaciones por defecto para Apache y PHP no las he mirado porque pienso que no influyen, ya que las inserciones desde PHP y Apache se realizan desde el otro equipo. Observación: Cuando inserto datos en la base de datos manualmente desde el phpmyadmin, las Ñ se graba sin ningún problema.
Equipo B: Servidor Apache desde el que se accede al otro equipo y su servidor MySql.
Sistema Operativo: W XP Versión PHP: 5.1 Servidor Web: Apache 2.2.13
Codificación por defecto en PHP: UTF-8 Codificación del documento Html-PHP donde se ejecuta el formulario y se manejan las variables de datos PHP que son enviadas al MySql: Charset:utf-8 Codificación del documento (página web) PHP en el editor: UTF-8 Codificación del documento (página web) PHP en los navegadores Firefox y Explorer: UTF-8
Es decir, todo está en UTF-8. El motor PHP y el Apache del equipo A no lo he mirado, como dije antes, pero entiendo que no tienen nada que ver. He probado a combinar poniendo el motor PHP en ISO-8859-1 dejando la MySql en utf-8, ya que en algún post por internet decía algo de eso. He probado a poner en el código PHP, un línea que le diga al PHP que se codifique los datos de texto en utf-8.
Pero nada de nada.... siempre las Ñ llegan mal a la base de datos, con los caracteres extraños que ya sabéis.... Àä+ y esas cosas...
Alguna idea clarificadora please???
Gracias.
Solamente cambia la codificacion de la bd por latin, asi mismo verifica que el locale del s.o este en espaniol..... Enviado desde mi oficina móvil BlackBerry® de Telcel
-----Original Message----- From: Gonzalo Cáceres gonzalocaceres70@hotmail.com
Date: Sun, 13 Sep 2009 13:13:39 To: centos-es@centos.org Subject: [CentOS-es] PROBLEMAS CON CARCATERES
_______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
Bueno.... después de toda una noche desvelada... sin encontrar la solución... dormir un par de horas.... preguntar a la lista.... resulta que me surgió un destello de una idea y lo solucioné...
Aquí va lo que creo que me pasaba, lo que hice y cómo lo solucioné... espero que a otros que se vean en el mismo caso les sirva de ayuda...
Como ya expliqué, lo tenía todo en UTF-8... después de escribir el post anterior... volví a revisar todo paso a paso y confirmé que efectivamente todo está en UTF-8, y por ahí venía el problema....
Decidí aplicar en el código PHP la función utf8_encode() de la manera siguiente;
$lavariablequesea = utf8_encode($lavariablequesea);
Después de hacer esto, probé a insertar un nuevo registro en MySql desde la página web PHP... y resultó que lejos de corregirse el problema, se agravó, ya que ahora en vez de 2 caracteres extraños, había 4 caracteres...
Entonces pensé que lo que estaba ocurriendo, es que MySql estaba codificando todo lo que le llegara a UTF-8, pero cuando lo que le llega ya está en UTF-8, lo vuelve a codificar y es ahí donde se producen caracteres extraños...
al codificar d enuevo UTF-8 sobre datos ya codificados UTF-8.
Por lógica, pensé... debo retroceder un paso en la codificación... es decir... lo voy a enviar los datos a MySql en codificación ISO-8859-1... y si es como pienso, MySql lo codificará a UTF-8....
y gualaaa!!!! funcionó...
Metí en el código PHP, justo antes de la instrucciones query e INSERT para la base de datos, una línea que me descodificara la variable, de UTF-8 y me la dejara en ISO-8859-1... es decir... lo contrario a lo que hice antes...
$lavariablequesea = utf8_decode($lavariablequesea);
Eso fue todo...ahora me toca modificar el código PHP y meter esas decodificaciones para todas las variables.
Saludos.
From: Gonzalo Cáceres Sent: Sunday, September 13, 2009 1:13 PM To: centos-es@centos.org Subject: [CentOS-es] PROBLEMAS CON CARCATERES
Hola amigos...
Tengo un problemas cuando inserto datos en MySql desde un formulario de Html y PHP.
El problema lo tengo las eÑes y eñes (Ñ,ñ)... y supongo que también me pasará lo mismo con los acentos.
Esta es la configuración que tengo a ver si alguien me puede dar una pista, porque no doy con el problema... que en principio creo que debe estar en la codificación de algo, pero no doy pie con bola.
La configuración se reparte en dos equipo:
Equipo A: Servidor de MySql al que se accede en red local.
Sistema Operativo: Linux Version MySql: 5.0.67 Codificación por defecto de MySql y de las bases de datos creadas incluso todos los campos: UTF-8 Servidor Web para el phpmyadmin: Apache 2.2.6 Versión de PHP: 5 Versión phmypadmin: 3.2.0-beta1
Las codificaciones por defecto para Apache y PHP no las he mirado porque pienso que no influyen, ya que las inserciones desde PHP y Apache se realizan desde el otro equipo. Observación: Cuando inserto datos en la base de datos manualmente desde el phpmyadmin, las Ñ se graba sin ningún problema.
Equipo B: Servidor Apache desde el que se accede al otro equipo y su servidor MySql.
Sistema Operativo: W XP Versión PHP: 5.1 Servidor Web: Apache 2.2.13
Codificación por defecto en PHP: UTF-8 Codificación del documento Html-PHP donde se ejecuta el formulario y se manejan las variables de datos PHP que son enviadas al MySql: Charset:utf-8 Codificación del documento (página web) PHP en el editor: UTF-8 Codificación del documento (página web) PHP en los navegadores Firefox y Explorer: UTF-8
Es decir, todo está en UTF-8. El motor PHP y el Apache del equipo A no lo he mirado, como dije antes, pero entiendo que no tienen nada que ver. He probado a combinar poniendo el motor PHP en ISO-8859-1 dejando la MySql en utf-8, ya que en algún post por internet decía algo de eso. He probado a poner en el código PHP, un línea que le diga al PHP que se codifique los datos de texto en utf-8.
Pero nada de nada.... siempre las Ñ llegan mal a la base de datos, con los caracteres extraños que ya sabéis.... Àä+ y esas cosas...
Alguna idea clarificadora please???
Gracias.
--------------------------------------------------------------------------------
_______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es