Copiar el código PHP de un tutorial proporciona Avisos en mi computadora

Tengo un sitio de comercio electrónico basado en este tutorial .

Ahora, en la página cart.php, cada vez que alguien actualiza la cantidad y procede a hacer clic en el botón Update Cart , son recibidos con los siguientes avisos:

 Notice: Array to string conversion in /home/aquadual/public_html/fiverrproject/plaincart/library/config.php on line 51 Notice: Array to string conversion in /home/aquadual/public_html/fiverrproject/plaincart/library/config.php on line 51 Notice: Array to string conversion in /home/aquadual/public_html/fiverrproject/plaincart/library/config.php on line 51 Unknown column 'A' in 'where clause' 

Aquí está el código en el archivo config.php que afecta este aviso:

 if (!get_magic_quotes_gpc()) { if (isset($_POST)) { foreach ($_POST as $key => $value) { **$_POST[$key] = trim(addslashes($value));** } } if (isset($_GET)) { foreach ($_GET as $key => $value) { $_GET[$key] = trim(addslashes($value)); } } } 

La línea real es la línea 51 en todo el archivo de configuración:

 $_POST[$key] = trim(addslashes($value)); 

En realidad tienes dos problemas en este error.

La primera parte es que está asumiendo que cada valor en su matriz $_POST es una cadena (dado su uso de trim() y addslashes() ). Este no es necesariamente el caso; un valor en esa matriz también podría ser una matriz. Los avisos te dicen que, tres veces, tratas de tratar una matriz como si fuera una cadena. Sin embargo, estos avisos no son fatales y no deberían causar el locking directo de la página.

El segundo error es la última línea, que probablemente no esté relacionada con las tres primeras líneas de error (aunque podría estar relacionada indirectamente … 0_0). Este error es un error en una consulta SQL en algún lugar, causando un error fatal, que hace que el código PHP deje de ejecutarse. Parece que está intentando limitar una instrucción SELECT o UPDATE basada en una columna que no existe en la tabla que está consultando. Debería verificar su código SQL para asegurarse de que esté funcionando correctamente. Esto probablemente no esté cerca de la línea 51.

Me gusta codificar de la siguiente manera

 if (!get_magic_quotes_gpc()) { if (!empty($_GET)) { $_GET = addslashes_deep($_GET); } if (!empty($_POST)) { $_POST = addslashes_deep($_POST); } $_COOKIE = addslashes_deep($_COOKIE); $_REQUEST = addslashes_deep($_REQUEST); } function addslashes_deep($value) { if (empty($value)) { return $value; } else { return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value); } } 

Bueno, antes que nada deberías publicar también print_r () de tu var $ _POST. De todos modos, hay un caso donde puedes tener una matriz dentro de $ _POST [‘whatever’]:

    

esto producirá:

 $_POST => Array( 'arr' => Array( 0 => 'a', 1 => 'b', 2 => 'c' ) ) 

Afaik, es el único caso

Hola, me encontré con un problema similar con el mismo tutorial.

Encontré este código …

  if (!get_magic_quotes_gpc()) { if (isset($_POST)) { foreach ($_POST as $key => $value) { $_POST[$key] = $value; } } if (isset($_GET)) { foreach ($_GET as $key => $value) { $_GET[$key] = $value; } } } 

publicado por @Chandraveer singh desde este enlace … error durante la función addslashes () en php

y lo reemplazó con el código que se encuentra en el tutorial, por ejemplo, http://www.phpwebcommerce.com/source/library/config.php

y resolvió mi problema Espero que te ayude a ti y a cualquier otra persona que use el mismo tutorial también.