Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: -Ramc- en 26 Abril 2010, 20:47 pm



Título: str_ireplace no funciona llamado desde función
Publicado por: -Ramc- en 26 Abril 2010, 20:47 pm
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
  1. <?php
  2. $reservedWords = array("ALTER", "AND", "ANY", "BETWEEN", "FROM",
  3.    "SELECT", "JOIN", "CREATE", "LIKE", "TABLE", "DECLARE", "DELETE", "UNION", "UPDATE",
  4.    "DISTINCT", "USE", "DROP", "VALUES", "EXEC", "EXECUTE", "INSERT", "INTO", "'");
  5.  
  6. function cleanSQLi($value) { //Clean SQLi
  7.  $fin = trim(htmlentities($value));
  8.    $fin = stripslashes($fin);
  9.  }
  10.  return str_ireplace($reservedWords, '', $fin);
  11. }?>

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

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.