1 (edited by Crupuk 2009-09-21 07:01:16)

Topic: Problème avec Piwik depuis Maj php 5.3

Bonjour,

Depuis quelques mois déjà j'ai une erreur sur mon installation piwik.
Du coup, je ne peux plus rien faire avec, et je me décide enfin à venir vous voir.

J'utilise la dernière version de piwik (Sensé fonctionner sous Php 5.3)
Une installation toute fraîche de la base de donnée et du programme piwik.

Voici la table sur la quelle Piwik exécute une requete basic :

idsite    name    main_url    ts_created
1    SoEz.be    http://www.soez.be    2009-09-21 08:41:16


Et la requête :

SELECT * FROM piwik_site WHERE idsite = 9

Située dans le fichier piwik/plugins/SitesManager/API.php

qui contient cette fonction :

        static public function getSiteFromId( $idSite )
        {
                Piwik::checkUserHasViewAccess( $idSite );
                $site = Zend_Registry::get('db')->fetchRow("SELECT * FROM ".Piwik::prefixTable("site")." WHERE idsite = ?", $idSite);
                return $site;

        }

En ajoutant un echo "SELECT * FROM ".Piwik::prefixTable("site")." WHERE idsite = ".$idSite;

J'ai comme requête :

SELECT * FROM piwik_site WHERE idsite = 1

Qui me retourne bien :

idsite    name    main_url    ts_created
1    SoEz.be    http://www.soez.be    2009-09-21 08:51:49

Via phpmyadmin.

Mais la si je fait un print $site, j'obtient étrangement ceci :

Array ( [idsite] => 1 [name] => SoEz.be [piwik_site] => 2009-09-21 08:58:49 )

La librairie qu'ils utilises ne me renvoi pas main_url.

Voici l'erreur renvoyée par piwik :

Notice: Undefined index: main_url in /var/www/html/soez.be/piwik/core/Site.php on line 43

Backtrace -->
#0 Piwik_ErrorHandler(8, Undefined index: main_url, /var/www/html/soez.be/piwik/core/Site.php, 43, Array ()) called at [/var/www/html/soez.be/piwik/core/Site.php:43]
#1 Piwik_Site->getMainUrl() called at [/var/www/html/soez.be/piwik/core/Controller.php:244]

Je n'ai aucune erreur dans mes logs httpd (ni dans ceux de mod_security)

La requête fonctionne, et personne sur le forum de piwik n'a ce soucis..
Est-ce du à la version de php ? de pdo ?

Merci pour votre aide !

A bientôt

Re: Problème avec Piwik depuis Maj php 5.3

Pour plus d'information :

Dans la fonction getSiteFromId on fait appelle à la fonction fetchRow du fichier : libs/Zend/Db/Adapter/Abstract.php


public function fetchRow($sql, $bind = array())
    {
        $stmt = $this->query($sql, $bind);
        $result = $stmt->fetch($this->_fetchMode);
        print_r($result);
        return $result;
    }

A ce stade, $sql =SELECT * FROM piwik_site WHERE idsite = ?

Et $bind = Array( [0] => 16)

On entre ensuite dans la fonction query (Désolé elle est assez longue) :

public function query($sql, $bind = array())
    {
        // connect to the database if needed
        $this->_connect();

        // is the $sql a Zend_Db_Select object?
        if ($sql instanceof Zend_Db_Select) {
            $sql = $sql->__toString();
        }

        // make sure $bind to an array;
        // don't use (array) typecasting because
        // because $bind may be a Zend_Db_Expr object
        if (!is_array($bind)) {
            $bind = array($bind);
        }

        // prepare and execute the statement with profiling
        $stmt = $this->prepare($sql);
        $stmt->execute($bind);

        // return the results embedded in the prepared statement object
        $stmt->setFetchMode($this->_fetchMode);
        return $stmt;
    }

Ici j'affiche après le __toString $sql et après le is_array $bind :

SQL = SELECT idsite FROM piwik_site Array ( )
BIND = 1

Et c'est après que ça ne va plus..

Quand dans la fonction fetchRow je fait un print_r($result) je n'ai que :

Array ( [idsite] => 1 [name] => SoEz.be [piwik_site] => 2009-09-21 09:32:37 )

Or la requête est bien un SELECT *..

Problème avec php ?

Voilà, j'éspère avoir fournis assez d'information.

Re: Problème avec Piwik depuis Maj php 5.3

On dirait que le problème vient du Framework, visiblement Zend.
Quelle est la version utilisée ? Est-elle compatible PHP 5.3 ?
à priori il faudrait une version 1.9.x (mais pas évident de trouver de l'info)

+

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

4 (edited by Crupuk 2009-09-21 18:29:20)

Re: Problème avec Piwik depuis Maj php 5.3

Merci pour ta réponse Remi..

Aurais-tu des pistes pour explorer ça ? Car pas certain que changer de framework est possible sans des adaptations de piwik.

Apparemment d'après le forum de Piwik je suis le seul à avoir ce soucis actuellement (en fait on est deux), et Piwik est sensé supporter php 5.3..

Je suis perdu là..

final class Zend_Version
{
    /**
     * Zend Framework version identification - see compareVersion()
     */
    const VERSION = '1.0.0';

Si j'en crois ce que je vois.. Elle date non?