Foros del Web » Programando para Internet » PHP »

Problema de codificación de caracteres

Estas en el tema de Problema de codificación de caracteres en el foro de PHP en Foros del Web. Hola, tengo esta función la cual quiero utilizar al insertar datos a la base de datos, pero me da un error, me aparece la tabla ...
  #1 (permalink)  
Antiguo 13/04/2012, 11:20
 
Fecha de Ingreso: febrero-2010
Mensajes: 27
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema de codificación de caracteres

Hola, tengo esta función la cual quiero utilizar al insertar datos a la base de datos, pero me da un error, me aparece la tabla vacía.

Código PHP:
Ver original
  1. function db_insertar ($string)
  2. {
  3.     $string = trim($string);
  4.     $string = htmlentities($string, ENT_QUOTES, 'UTF-8');
  5.  
  6.         $string = stripslashes($string);
  7.        
  8.     $string = mysql_real_escape_string($string);
  9.     return $string;
  10. }

No encuentro el error en esta función, ¿alguna ayuda?.
Gracias.
  #2 (permalink)  
Antiguo 13/04/2012, 11:34
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema de codificación de caracteres

Parece ser la codificación UTF-8.

Prueba htmlentities() sin UTF-8 y en todo caso prueba la función directamente.

Código PHP:
echo db_insertar ('hola soy un texto'); 
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 13/04/2012, 11:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 27
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de codificación de caracteres

Gracias por responder Santris, pero el problema es con mysql_real_escape_string(). Si la elimino, la función va correctamente.
Y la modificaría usando addslashes() así:

Código PHP:
Ver original
  1. function db_insertar ($string)
  2.     {
  3.         $string = trim($string);
  4.         $string = htmlentities($string, ENT_QUOTES, 'UTF-8');
  5.      
  6.         if (!get_magic_quotes_gpc())
  7.             $string = addslashes($string);
  8.            
  9.         return $string;
  10.     }

Esto me cubre <,>,'," como caracteres espaciales.

Ahora mi pregunta es: ¿se crea alguna vulnerabilidad en cuanto a la seguridad el no uso de mysql_real_escape_string() ?.
  #4 (permalink)  
Antiguo 13/04/2012, 11:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Problema de codificación de caracteres

puedes probar utf8_encode()
  #5 (permalink)  
Antiguo 13/04/2012, 13:27
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema de codificación de caracteres

Cita:
Iniciado por rnld55u Ver Mensaje

Esto me cubre <,>,'," como caracteres espaciales.

Ahora mi pregunta es: ¿se crea alguna vulnerabilidad en cuanto a la seguridad el no uso de mysql_real_escape_string() ?.
Sería más que conveniente usarla, intenta averiguar el motivo por el cual no puedes hacer uso de ella. realizas bien la conexión a la bD??
__________________
Tu álbum de cromos online!!
  #6 (permalink)  
Antiguo 13/04/2012, 13:53
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Problema de codificación de caracteres

Mi pregunta es,
$string = htmlentities($string, ENT_QUOTES, 'UTF-8');
No convierte tanto comillas dobles como sencillas? Porque usar addslashes o stripslashes?
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 08:13.