Comunidad de diseño web y desarrollo en internet online

Error al Escapar valores para MySQL

Citar            
MensajeEscrito el 24 Feb 2010 07:58 pm
Hola clabers, estoy intentando escapar caracteres para que puedan ser insertados en una base de datos pero me en varias ocasiones eh encontrado con que a algunos datos escapa incorrectamente el primer carácter por ejemplo si quisiera guardar una cadena como ser:

Código :

mi cadena


El escapado me devuelve

Código :

i cadena


Esto no ocurre en todas las comprobaciones pero tampoco puedo determinar en cuales lo hace, la función que utilizo para escapar los caracteres es la siguiente

Código PHP :

function Escapado($Dato){
   if(get_magic_quotes_gpc()){
      $Dato = stripslashes($Dato);
   }
   
   if($Conexion and $Escapado_MYSQL){
      return @mysql_real_escape_string($Dato, $Conexion);
   }
   else{
      return @addslashes($Dato);
   }
}


Alguien tiene alguna sugerencia

Saludos

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 24 Feb 2010 11:36 pm
no comprendo bien que rayos hace tu

Código PHP :

function Escapado($Dato){
  if(get_magic_quotes_gpc()){
    $Dato = stripslashes($Dato);
  }

  if($Conexion and $Escapado_MYSQL){
    return @mysql_real_escape_string($Dato, $Conexion);
  }
  else{
    return @addslashes($Dato);
  }
}


no le veo sentido!"

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 25 Feb 2010 03:06 am
Perdón quizás di por entendido su funcionamiento, esta función esta fuera de contexto porque forma parte de una clase que realice, básicamente lo primero que hace la función es preguntar si las comillas mágicas están activadas en caso de ser así vuelve el dato a su valor original.

Código PHP :

if(get_magic_quotes_gpc()){ 
      $Dato = stripslashes($Dato); 
} 


Luego lo que hace es preguntar si existe una conexión y si la variable $Escapado_MYSQL son verdaderas realiza el escapado con la función

Código PHP :

if($Conexion and $Escapado_MYSQL){ 
      return @mysql_real_escape_string($Dato, $Conexion); 
}


Caso contrario con la función

Código PHP :

else{ 
      return @addslashes($Dato); 
} 


y devuelve la cadena modificada.

Es muy similar a la función escape de la clase wpdb de Wordpress (de ahí le di su origen)

Tienes alguna sugerencia?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.