Mensajes: 103
Temas: 19
Registro en: Apr 2015
Reputación:
0
Buenos días,
Queremos actualizar a opencart 4.1 y se necesita una version PHP súperior a 8.0
¿Puedes ayudarnos Oscar? al conectar nos saltan error http:500 y en el error log:
#0 {main}
thrown in /home/loveandr/lovecompanyshop.com/sysmetpvopencart/updateproduct.php on line 33
[03-Apr-2025 11:41:59 Europe/Madrid] PHP Deprecated: Function utf8_encode() is deprecated in /home/loveandr/lovecompanyshop.com/sysmetpvopencart/funciones.php on line 26
[03-Apr-2025 11:41:59 Europe/Madrid] PHP Fatal error: Uncaught mysqli_sql_exception: Unknown column 'viewed' in 'INSERT INTO' in /home/loveandr/lovecompanyshop.com/sysmetpvopencart/updateproduct.php:91
Stack trace:
#0 /home/loveandr/lovecompanyshop.com/sysmetpvopencart/updateproduct.php(91): mysqli_query()
#1 {main}
thrown in /home/loveandr/lovecompanyshop.com/sysmetpvopencart/updateproduct.php on line 91
Gracias!
Mensajes: 15,621
Temas: 122
Registro en: Sep 2012
Reputación:
121
Buenas LoveRoll,
Pues si solo son esos dos errores (espero que no hayan mas), las soluciones serían:
En el fichero funciones.php eliminar la línea 26, esta función (que parece que ya está eliminada de php 8) se encarga de pasar un texto a UTF8, en un principio no es obligatoria.
En el caso del segundo error en el fichero updateproduct.php, aquí parece que el campo VIEWED de la tabla de productos de Opencart ya no existe en Opencart 4.1, por tanto habría que eliminarlo de la sentencia de creación, en la linea 60 y en la linea 89
Ya me dices.
Mensajes: 103
Temas: 19
Registro en: Apr 2015
Reputación:
0
(03-04-2025, 11:17 AM)sysme escribió: Buenas LoveRoll,
Pues si solo son esos dos errores (espero que no hayan mas), las soluciones serían:
En el fichero funciones.php eliminar la línea 26, esta función (que parece que ya está eliminada de php 8) se encarga de pasar un texto a UTF8, en un principio no es obligatoria.
En el caso del segundo error en el fichero updateproduct.php, aquí parece que el campo VIEWED de la tabla de productos de Opencart ya no existe en Opencart 4.1, por tanto habría que eliminarlo de la sentencia de creación, en la linea 60 y en la linea 89
Ya me dices.
No me coinciden la lineas, me podrias decir que sentencias aparecen? gracias
Mensajes: 15,621
Temas: 122
Registro en: Sep 2012
Reputación:
121
En updateproduct.php
Código PHP: // no existe, crea $sql = 'insert into ' . DB_PREFIX . 'product (model,upc,sku,location,EAN,jan,isbn,mpn,quantity,stock_status_id,image,shipping,price,points,tax_class_id,'; $sql = $sql . 'date_available,weight,weight_class_id,length,length_class_id,subtract,minimum,sort_order,status,date_added,date_modified,manufacturer_id,viewed)'; $sql = $sql . ' values ('; $sql = $sql . '\'' . $_POST['id_complementog'] . '\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'' . $_POST['codbarras'] . '\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '' . $_POST['stock'] . ','; $sql = $sql . '5,'; $sql = $sql . '\'' . $folder . $_POST['id_complementog'] . '.jpg\','; $sql = $sql . '1,'; $sql = $sql . '' . $_POST['precio'] . ','; $sql = $sql . '0,'; $sql = $sql . '9,'; $sql = $sql . 'curdate(),'; $sql = $sql . '' . $_POST['peso'] . ','; $sql = $sql . '1,'; $sql = $sql . '0,'; $sql = $sql . '0,'; $sql = $sql . '1,'; $sql = $sql . '1,'; $sql = $sql . $_POST['sort_order'] . ','; $sql = $sql . '1,'; $sql = $sql . 'curdate(),'; $sql = $sql . 'curdate(),'; $sql = $sql . '0,'; $sql = $sql . '0'; $sql = $sql . ')'; $result2 = mysqli_query($conexion, $sql);
Habria que substituirlo por:
Código PHP: // no existe, crea $sql = 'insert into ' . DB_PREFIX . 'product (model,upc,sku,location,EAN,jan,isbn,mpn,quantity,stock_status_id,image,shipping,price,points,tax_class_id,'; $sql = $sql . 'date_available,weight,weight_class_id,length,length_class_id,subtract,minimum,sort_order,status,date_added,date_modified,manufacturer_id)'; $sql = $sql . ' values ('; $sql = $sql . '\'' . $_POST['id_complementog'] . '\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'' . $_POST['codbarras'] . '\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '\'\','; $sql = $sql . '' . $_POST['stock'] . ','; $sql = $sql . '5,'; $sql = $sql . '\'' . $folder . $_POST['id_complementog'] . '.jpg\','; $sql = $sql . '1,'; $sql = $sql . '' . $_POST['precio'] . ','; $sql = $sql . '0,'; $sql = $sql . '9,'; $sql = $sql . 'curdate(),'; $sql = $sql . '' . $_POST['peso'] . ','; $sql = $sql . '1,'; $sql = $sql . '0,'; $sql = $sql . '0,'; $sql = $sql . '1,'; $sql = $sql . '1,'; $sql = $sql . $_POST['sort_order'] . ','; $sql = $sql . '1,'; $sql = $sql . 'curdate(),'; $sql = $sql . 'curdate(),'; $sql = $sql . '0'; $sql = $sql . ')'; $result2 = mysqli_query($conexion, $sql);
Y en funciones.php habría que eliminar esta línea:
Código PHP: $cadena = sanear_string(utf8_encode($cadena));
Mensajes: 105
Temas: 16
Registro en: Aug 2016
Reputación:
1
(03-04-2025, 12:52 PM)sysme escribió: Y en funciones.php habría que eliminar esta línea:
Código PHP: $cadena = sanear_string(utf8_encode($cadena));
Usa mb_convert_encoding:
https://www.php.net/manual/es/function.m...coding.php
Mensajes: 103
Temas: 19
Registro en: Apr 2015
Reputación:
0
03-04-2025, 04:09 PM
(Este mensaje fue modificado por última vez en: 03-04-2025, 06:14 PM por LoveRoll.)
Bueno, pues sincroniza...
sube las imagenes a la ruta catalog/ no crea el producto, ni categoría, ni marca, ni opciones.
Lo raro es que no arroja ningún error ni tampoco da el ``OK´´
Funciona igualmente:
eliminando:
$cadena = sanear_string(utf8_encode($cadena));
como utilizando:
$cadena = sanear_string(mb_convert_encoding($cadena, 'UTF-8', 'ISO-8859-1'));
|