str_ireplace no funciona llamado desde función

Iniciado por -Ramc-, 26 Abril 2010, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

-Ramc-

Hola a todos ¿Cómo están?

Veran tengo un problema con un script PHP que a mi parecer está bien, pero, aun así no funciona.

Tengo dos scripts:

BDConnection.php
Código (php, 11) [Seleccionar]
<?php
$reservedWords 
= array("ALTER""AND""ANY""BETWEEN""FROM",
    
"SELECT""JOIN""CREATE""LIKE""TABLE""DECLARE""DELETE""UNION""UPDATE",
    
"DISTINCT""USE""DROP""VALUES""EXEC""EXECUTE""INSERT""INTO""'");

function 
cleanSQLi($value) { //Clean SQLi
  
$fin trim(htmlentities($value));
  if(
get_magic_quotes_gpc()) {
    
$fin stripslashes($fin);
  }
  return 
str_ireplace($reservedWords''$fin);
}
?>


y ini.php
Código (php, 4, 5) [Seleccionar]
<?php
include("libraries/BDConnection.php");
$value "<h1>INSERT INTO Empresa / VALUES('Hola', 'XD')</h1>";
echo 
cleanSQLi($value);
//echo str_ireplace($reservedWords, "", $value);
?>


Como ven agrego BDConnection.php y llamo a la función cleanSQLi de ese script, el problema es que la función hace todo el proceso menos la parte de str_ireplace, el str_ireplace no hace nada, pero, si hago la llamada a la función directamente en ini.php sí funciona, como está en el último comentario de ini.php, si meto esa función dentro de una función dentro de ini.php ya no funciona, en teoría creo yo que debería funcionar, pero, no lo hace aunque deje la función solamente haciendo esa llamada.

¿Alguién sabe por qué?

Gracias a todos.

EDIT: Resuelto, estuve dandole vueltas varias horas y era porque al principio de la función faltaba el global $reservedWords; para que reconozca la variable.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.