x

Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación.
Si continúa navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración, en nuestra Política de cookies

 
  Entrar Regístrate
 
Volviéndome loco con PHP, mySQL y los Acentos
#1 · 12/Jul/2009, 21:42 · Editado por EffectedCard

Estoy trabajando en un registro a la base de datos y tengo problemas con los acentos. He estado investigando por internet y aconsejan que cambies la codificación a UTF-8 (y eso he hecho) y que definas las variables de una manera determinada.

El registro consta de tres partes:

registro.php el formulario que envía los datos donde he puesto:
<meta http-equiv="content-type" content="text/html; UTF-8" />

funciones.js que contiene el envío ajax:
peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; UTF-8');

Y inscribir.php donde se registra a la base de datos:
header('Content-Type: text/html; UTF-8');

Por supuesto, también he modificado los campos de la base de datos. También había probado con latin1 y con el por defecto: iso-8859-1 (aunque es cierto que en estos dos casos había olvidado modificar funciones.js). Y no hay forma.


Por otra parte, aconsejan definir las variables como:
$nombre=stripslashes(htmlentities(strtolower($_POST['nombre'])));
Antes las tenía como: $nombre=mysql_real_escape_sting(strtolower($_POST['nombre']));


Con ninguno de los cambios he podido cambiar nada. Sigue guárdandome carácteres extraños. He investigado y si hago un print $nombre; antes de insertar los datos, ya están mal codificados. ¿Alguna idea para solucionar el dichoso problema?

 

 
Gracias de antemano.

 



EffectedCard
Administrador del foro
Administrador del foro
Haz clic para ver el perfil del usuario
Mensajes: 3.785
Desde: 20/May/2003
· ·
#2 · 12/Jul/2009, 22:42
Escrito originalmente por EffectedCard

registro.php el formulario que envía los datos donde he puesto:
<meta http-equiv="content-type" content="text/html; UTF-8" />


 

 


Has probado poniendo el juego de caracteres. De esta forma:

<meta http-equiv="conten-type" content="text/html; charset=UTF-8" />

A ver que tal. Saludos!.


aerialss88
Come y duerme en el foro
Come y duerme en el foro
Haz clic para ver el perfil del usuario
Mensajes: 484
Desde: 13/Ene/2009
· ·
#3 · 13/Jul/2009, 00:42 · Editado por EffectedCard

Pues al parecer ha mejorado la cosa. Vaya error más gilipoyas. Parece que la cosa va bien, pero no del todo; lo estoy revisando.

¡Muchas Gracias!

 

 

EDITO Y AÑADO:

¿Por qué si en un sitio funciona perfectamente, en el otro no?

http://effectedcard.webcindario.com/bar/adm_comensales.php?pag=1

http://effectedcard.webcindario.com/bar/registro.php

La codificación en ambos es UTF-8. Ambos lo tienen doblemente definido como:

 

<? header('Content-Type: text/html; charset=UTF-8'); ?>
 

<? header('Content-Type: text/html; charset=UTF-8'); ?>

y

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Ambos sacan los mismos datos de la misma tabla. En el segundo fichero sólo saco un resultado, en el primero saco varios.

 



EffectedCard
Administrador del foro
Administrador del foro
Haz clic para ver el perfil del usuario
Mensajes: 3.785
Desde: 20/May/2003
· ·
#4 · 13/Jul/2009, 20:41

Parece que le sacas ya mal. En la base de datos seguro que esta bien. Yo probaria a hacer una .php que tan solo te saque un registro, y te le muestre, a ver que tal va...


NoSetup.org
@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.201
Desde: 01/Mar/2003
· ·
#5 · 13/Jul/2009, 21:37 · Editado por aerialss88

Yo emplee lo siguiente:

<?php 

header('Content-Type: text/xml');
 echo '<?xml version="1.0" encoding="UTF-8"?>';

?>

Pruebalo a ver que tal te va. Aunque claro yo en ese archivo extraia los datos ya correctos...no se si te servira. Pero bueno , por intentar no se pierde nada. Saludos!.


aerialss88
Come y duerme en el foro
Come y duerme en el foro
Haz clic para ver el perfil del usuario
Mensajes: 484
Desde: 13/Ene/2009
· ·
#6 · 13/Jul/2009, 22:40 · Editado por EffectedCard

Sí, si el error tiene que estar en registro.php, pero no lo entiendo.

Hay la misma forma de "codificar" que en http://effectedcard.webcindario.com/bar/adm_comensales.php?pag=1 y ahí funciona bien. Lo cual hace pensar que en la base de datos está todo correcto. Voy a probar darle al config.php y a funciones.php la misma codificación por si fuera tema de que, al hacer el include, cambiaran la codificación.

 

aerials88, tu método no ha funcionado.

 

 

Gracias a ambos en cualquier caso. Voy a probar eso y digo algo.

 

 

EDITO: No, eso tampoco ha funcionado. Todo sigue igual. ¿Más ideas? =S



EffectedCard
Administrador del foro
Administrador del foro
Haz clic para ver el perfil del usuario
Mensajes: 3.785
Desde: 20/May/2003
· ·
#7 · 13/Jul/2009, 22:52 · Editado por EffectedCard

Todo claro y solucionado. Si lo guardo con htmlentities, hay que sacarlo con html_entity_decode. En uno sí lo había puesto, en el otro se me ha pasado. ¡Gracias y lo siento!



EffectedCard
Administrador del foro
Administrador del foro
Haz clic para ver el perfil del usuario
Mensajes: 3.785
Desde: 20/May/2003
· ·
#8 · 20/May/2010, 14:51

Si lo que te muestra mal proviene de la base de datos os voy a dar la solición más sencilla de todas. Tan solo basta con que la conexión a la base de datos de cada consulta que hagas, sea siempre desde un mismo archivo. Por ejemplo conecta.php

En ese archivo le ponemos los datos de la conexión:

<?php
/* conectar a base de datos */
mysql_connect("localhost","mibasededatos", "mipassword") ;
   mysql_select_db("mitabla");
mysql_query("SET NAMES 'utf8'");   
?>

Como véis he incluído después de la conexión el query

mysql_query("SET NAMES 'utf8'"); 

Con eso y un bizcocho...problema resuelto

 


jamon33
Usuario Novato
Usuario Novato
Haz clic para ver el perfil del usuario
Mensajes: 10
Desde: 17/May/2010
·
#9 · 17/Sep/2013, 03:23

@jamon33

Muchas Gracias tu respuesta me ayudo  y solucione mi problema de una manera muy simple ;)

Se agradece.


AjVillalon
Usuario Novato
Usuario Novato
Haz clic para ver el perfil del usuario
Mensajes: 1
Desde: 17/Sep/2013
·
#10 · 14/Nov/2013, 22:16 · Editado por SunandnatureSpain

Muchísimas gracias por la ayuda, porque tenia el mismo problema, tanto en la inserción de datos como en la extracción de datos.

Y ambos errores los he solucionado incluyendo las siguienes sentencias en el fichero que corresponda, dependiendo de si va a trabajar con sentencias insert, update o select.

//Establecemos conexión con la base de datos

$abreConexion = mysql_connect("servidor", "usuario", "password");
if (!$abreConexion) {
die("Error al abrir la conexión " . mysql_error()); 
}

mysql_set_charset('utf8');  //para codificar a utf-8 al insertar datos. (insert, update)

mysql_select_db("base de datos que abrir", $abreConexion) or die("Error base de datos"); // selecciona la base de datos de la conexión que hemos abierto previamente

mysql_query("SET NAMES 'utf8'");  //para codificar a utf-8 al extraer datos (select)


SunandnatureSpain
Usuario Novato
Usuario Novato
Haz clic para ver el perfil del usuario
Mensajes: 1
Desde: 03/Oct/2013
· ·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Espacio WEB · PHP
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 12:04 UTC+02:00 DST
Temas similares
 I FotoPTemaMensajesÚltima respuesta
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Por: fb@100001468962018 · 04/Ago/2011, 02:36
104/Ago/2011, 03:49
GestionXls Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Por: cesarobcn · 05/May/2010, 19:08
206/May/2010, 01:00
Invitad@ Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Por: lingo5 · 11/Jun/2009, 13:17 · 1 · 2
2424/Jun/2009, 13:31
Invitad@ Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Por: ligoverto · 24/Jun/2009, 16:37
0Hoy, 01:00
Invitad@ Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Por: craven78 · 09/Oct/2014, 17:19
110/Oct/2014, 08:09
GestionXls Ir al último mensaje del tema