PHP - error al utilizar real_escape_string dentro de una función

 
Vista:

error al utilizar real_escape_string dentro de una función

Publicado por Antonio (1 intervención) el 20/11/2019 13:09:42
Hola! recibo este error al ejecutar una función:

Notice: Undefined variable: db in /home/byte2000/public_html/cart/cart1.php on line 32

Fatal error: Uncaught Error: Call to a member function real_escape_string() on null in /home/byte2000/public_html/cart/cart1.php:32 Stack trace: #0 /home/byte2000/public_html/cart/cart1.php(203): sanitize('webperfecto@hot...') #1 {main} thrown in /home/byte2000/public_html/cart/cart1.php on line 32

La variable db esta definida mas arriba de la función dentro de dbConfig.php

real_escape_string funciona si lo ejecuto fuera de función pero dentro de la funciona devuelve ese error, por que ocurre esto? Muchas Gracias...

Linea 32:
1
$output = $db->real_escape_string($input);

Todo el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
include 'Cart.php';
include 'dbConfig.php';
 
function cleanInput($input) {
 
  $search = array(
    '@<script[^>]*?>.*?</script>@si',   // Elimina javascript
    '@<[\/\!]*?[^<>]*?>@si',            // Elimina las etiquetas HTML
    '@<style[^>]*?>.*?</style>@siU',    // Elimina las etiquetas de estilo
    '@<![\s\S]*?--[ \t\n\r]*>@'         // Elimina los comentarios multi-línea
  );
 
    $output = preg_replace($search, '', $input);
    return $output;
  }
function sanitize($input) {
	global $link;
    if (is_array($input)) {
        foreach($input as $var=>$val) {
            $output[$var] = sanitize($val);
        }
    }
    else {
        if (get_magic_quotes_gpc()) {
            $input = stripslashes($input);
        }
        $input  = cleanInput($input);
        $output = $db->real_escape_string($input);
    }
    return $output;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 2.923
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

error al utilizar real_escape_string dentro de una función

Publicado por joel (909 intervenciones) el 20/11/2019 15:44:35
Hola Antonio, la variable $db no existe dentro de la función sanitize()!!!

En la linea 17 obtienes la variable $link, la cual no la utilizas dentro de la función... cambia el global y pon el $db en vez del $link
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar