El caso es que en el servidor Apache cuando tenemos la directiva magic_quotes_gpc activada tanto para las cookies, como para las variables envíadas vía $_POST como para las variables envías vía $_GET las " y las ' son automáticamente convertidas por el servidor añadiéndole el carácter \ para que no nos den problemas.
¿Pero qué sucede cuando esta directiva no está activada y no tenemos acceso para activarla (o no queremos por seguridad)? Pues que la cosa se complica bastante, cada formulario que enviamos puede convertirse en un calvario lleno de funciones para convertir campo a campo. En caso de no filtrarlos tenemos muchas papeletas para que aparezcan todo tipo de errores extraños.
Para evitar esto he programado una función que debe ser ejecutada cuanto más arriba de la página web mejor en la que filtro esos campos y convierto los caracteres peligrosos.
Aquí está la función:
Cómo siempre blogger se ha cargado las tabulaciones del código, que le vamos a hacer :(
Comparte este Post:
¿Pero qué sucede cuando esta directiva no está activada y no tenemos acceso para activarla (o no queremos por seguridad)? Pues que la cosa se complica bastante, cada formulario que enviamos puede convertirse en un calvario lleno de funciones para convertir campo a campo. En caso de no filtrarlos tenemos muchas papeletas para que aparezcan todo tipo de errores extraños.
Para evitar esto he programado una función que debe ser ejecutada cuanto más arriba de la página web mejor en la que filtro esos campos y convierto los caracteres peligrosos.
Aquí está la función:
function limpiaComillas($datos_html=array(null)){
foreach($_POST as $objeto1=>$objeto2){
$_POST[$objeto1]=trim(escapeshellcmd($objeto2), ENT_QUOTES);
if (!get_magic_quotes_gpc()){
$_POST[$objeto1] = addslashes($objeto2);
}else{
$_POST[$objeto1] = $objeto2;
}
}
foreach($_GET as $objeto1=>$objeto2){
$_GET[$objeto1]=trim(escapeshellcmd($objeto2), ENT_QUOTES);
if (!get_magic_quotes_gpc()){
$_GET[$objeto1] = addslashes($objeto2);
}else{
$_GET[$objeto1] = $objeto2;
}
if (in_array($objeto1,$datos_html)){
$_GET[$objeto1] = $objeto2;
}else{
$_GET[$objeto1] = strip_tags($objeto2);
}
}
}
limpiaComillas();
foreach($_POST as $objeto1=>$objeto2){
$_POST[$objeto1]=trim(escapeshellcmd($objeto2), ENT_QUOTES);
if (!get_magic_quotes_gpc()){
$_POST[$objeto1] = addslashes($objeto2);
}else{
$_POST[$objeto1] = $objeto2;
}
}
foreach($_GET as $objeto1=>$objeto2){
$_GET[$objeto1]=trim(escapeshellcmd($objeto2), ENT_QUOTES);
if (!get_magic_quotes_gpc()){
$_GET[$objeto1] = addslashes($objeto2);
}else{
$_GET[$objeto1] = $objeto2;
}
if (in_array($objeto1,$datos_html)){
$_GET[$objeto1] = $objeto2;
}else{
$_GET[$objeto1] = strip_tags($objeto2);
}
}
}
limpiaComillas();
Cómo siempre blogger se ha cargado las tabulaciones del código, que le vamos a hacer :(
Comparte este Post:
Comentarios