6 de marzo de 2012

VirtueMart 1.1.9: Solucionando algunos errores

Ya comentaba anteriormente algún problema que tengo en una Web para un amiguete al que le estoy creando una tienda virtual (enlace). En este caso, continuo recibiendo errores y sin posibilidad de deshabilitar la opción display_errors.

Todo el jaleo viene provocado por el uso de la versión 5.3 del servidor PHP y que por defecto el servidor muestra los errores por pantalla. Creo que el problema puede estar en la versión PHP definida en el archivo .htaccess que, repito: por defecto, no he modificado. Tengo que estudiarlo...


De momento me ha dado por corregirlos y a continuación podeis encontrar algunos fallos que he encontrado a la hora de realizar el pago, utilizando el componente VirtueMart 1.1.9 para Joomla 1.5.25 como gestor de contenido.

Archivo: phpmailer.php

Como se puede observar en la captura anterior, para los errores del fichero con ruta /www/libraries/phpmailer/phpmailer.php, obtenemos dos funciones despreciadas a partir de la versión 5.3 de PHP.


* Función split() 

Deprecated: Function split() is deprecated in /www/libraries/phpmailer/phpmailer.php on line 470

Como siempre, buscando información por Internet llego a la documentación del fabricante. En este caso, la función split() es sustituida por explode() que cumple la misma función. 



* Función set_magic_quotes_runtime()

Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/libraries/phpmailer/phpmailer.php on line 1218
Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/libraries/phpmailer/phpmailer.php on line 1222


Nuevamente rebuscando por los confineres de Internet, gracias a nuestro Gran Hermano Google y su eficacia para rastrear todo lo que se encuentra publicado. Llego a la documentación de PHP para descubir que a partir de la versión 5.4 la funcionalidad magic_quotes_runtime será eliminada.


Archivo ps_payment.php

Notice: Undefined property: ps_payment::$payment_code in /www/administrator/components/com_virtuemart/classes/ps_checkout.php on line 1220

Aunque en este caso, el error nos lo marca en el archivo ps_checkout.php, como podemos ver en el siguiente enlace corrrespondiente al foro oficial de VirtueMart, el fallo se encuentra en el archivo ps_payment.php.


En la versión 1.1.9 de éste componente, dicho archivo se encuentra en el directorio /www/administrator/components/com_virtuemart/classes/payment y se soluciona inicializando la variable payment_code dentro de la clase ps_payment.


Probando cambios

Una vez tenemos los cambios realizados y subidos los archivos al servidor, si probamos a realizar una nueva compra no aparece ningún error por pantalla.


Tengo que revisar los archivos .htaccess a ver si encuentro la raiz del problema para deshabilitar display_errors. Os mantendré informado...

Un saludo, Brixton Cat.

3 comentarios:

  1. Gracias, me salvaste esos errores me fastidiaban, buen blog

    ResponderEliminar
    Respuestas
    1. Gracias por el comentario, me alegro que te haya servido de ayuda. Saludos!

      Eliminar
  2. Muchas gracias! Los errores que daba phpmailer me estaban fastidiando. Gracias a "San Google" encontre tu blog que me dio la solucion.

    ResponderEliminar

Bienvenid= si quieres dejar un comentario