[PHP] function DamnQuotes($texto,$val)

Un dia entero me tomo tratar de evitar que al usar comillas simples en la entrada de datos una consulta se interrumpa. En el metodo tradicional seria:

$sql="INSERT into eje(id_eje, descripcion_eje)
values($id_final,'".$_POST["txtEje"]."')";

En este punto cuando yo introducza en mi caja de texto algo como O’Really me dara un soberbio error ya que la comilla que acompana a la O cierra la consulta. Sustituyendo quedaria asi:

$sql="INSERT into eje(id_eje, descripcion_eje)
values(2,'O'Really')";

Lo demas pues es error 🙁

Buscando por todas partes, lo mas recomendado es usar

magic_quotes_gpc = On

Que agrega una pleca antes de las comillas precisamente para evitar este problema, convertir ‘ en secuencia de escape, pero nada la comilla siempre estaba ahi fastiando la vida.

Use addslashes pero lo que logre era lo mismo que daba magic_quotes_gpc. Tenemos que volver a los inicios fuera bruta.

function DamnQuotes($texto,$val){
if ($val){
$nonQoutes = str_replace("'","/#^*/",$texto);
}
else{
$nonQoutes = str_replace("/#^*/","'",$texto);
}
return $nonQoutes;
}

Me invente una super funcion que sustituye las comillas en mi cadena de consulta por /#^*/ un verdadero alboroto y esto se metia en la base de datos a la vuelta para imprimir los datos realizaba el proceso inverso los garabatos por las ‘.

El por que del garabato pues es medio simple antes tenia una / en vez del garabato pero que pasaba si en el mismo texto iba una /? o_O Elegi la cobinacion de caracteres mas remota para que esto no llegue a pasar.

One thought on “[PHP] function DamnQuotes($texto,$val)

Leave a Reply

Your email address will not be published. Required fields are marked *