Piwik in osCommerce eingebaut, Erfassung arbeitet aber nicht

Hallo zusammen,

ich hab Piwik 1.1.1 in osCommerce installiert und zwar in der Datei catalog/includes/footer.php, so wie es hier auch ausgewiesen steht.

Vorher hatte ich eine alte Version installiert und der Tracking Code war in der index.php eingebaut.
Dort hat die Datenübergabe (wenn auch unvollständig) funktioniert.

Nun hatte ich am letzten Mittwoch das Update gemacht und den Tracker in die footer.php umgebaut.

Seit dem werden nun aber keine Daten mehr gesammelt.
Hab schon alles kontrolliert und durchgeschaut.

Kann mir einer evtl. helfen, wie ich den Fehler finden kann?

Danke und Gruß
Andreas

Ein Link wäre schön, so dass wir sehen können, ob es überhaupt funktional eingebunden ist …

Hallo Thomas,

Link geht leider nicht, da es sich um ein (nach außen nicht freigegebenes) Testsystem handelt.
Eigene Zugriffe werden von den Einstellungen aber nicht ignoriert und wurden in der Vergangenheit ja auch erfolgreich geloggt.
Javascript ist in den Clients aktiviert.

Vom Quellcode der Startseite her sieht das ganze so aus:


</table>
      </td></tr>
    </table>
      </td></tr>
      <tr><td height="150">&nbsp;</td></tr>
    </table>
<!-- footer_eof //-->
<br>
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://shop.home.int/z_logs/" : "http://shop.home.int/z_logs/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="https://shop.home.int/z_logs/piwik.php?idsite=1" style="border:0" alt="&nbsp;" width="1" height="1" /></p></noscript>
</body>
</html>

Wenn ich die “piwik.js” testweise umbenenne, dann funktioniert die Seite zwar noch, aber in den Apache-Logs taucht eine 404-Fehlermeldung dafür auf, soll heißen, dass m.E. das Skript schon korrekt aufgerufen wird - aber es werden halt keine Daten in die DB geschrieben.

Hab auch nochmal einen Vanilla-Download von Piwik 1.1.1 mit meiner Installation verglichen, ohne dass Veränderungen sichtbar geworden sind. Daher meine ich, dass das Update ebenfalls korrekt durchgelaufen ist.

Bin kurz davor, einfach die DB und die Installation platt zu machen und einfach neu zu installieren.
Das kanns doch aber nicht sein.

Kann man eigentlich im Nachhinein nochmal die Installations-Prüfroutinen aufrufen ?

Danke und Gruß
Andreas

Oder soll ich den Tracking Code doch wieder in die Einzeldateien einbauen anstatt in die footer.php ?

Vom Code her sieht das eigentlich richtig aus.
Nutzt Du Firefox? Wenn ja, dann probier mal die Firebug-Extension, die Dir sehr schön Netzwerkaufrufe anzeigt, ob dort auch der schlußendliche Aufruf zu piwik.php angezeigt wird.

Ja, ich nutze Firefox und hab auch den Firebug installiert.

Aber dennoch versteh ich gerade noch nicht, was bzw. wie ich nachschauen soll?!

Kannst Du mir das bitte ein bisschen genauer erläutern, auch was den schlußendlichen Aufruf der piwik.php angeht ?

Danke und Gruß
Andreas

Ich hab jetzt mal meine config.ini.php mit der aus dem zip-File verglichen.

Im [database]-Bereich, hab ich eine “port=xxxx”-Einstellung drin, die in der neuen Version nicht drin ist.

Kann das evtl. (m)ein Fehler sein?

Ich meinte, den Firebug auf der Seite öffnen, auf “Netzwerk” darin gehen und das Modul aktivieren (wenn noch nicht aktiv), dann mal die Seite neu laden (mit offenem Firebug). Dort siehst Du dann schön, welche Dateien und Skripte geladen werden. Dass piwik.php überhaupt geladen und mit 200 OK zurückgeliefert wird, sieht dann so ähnlich wie bei mir im Anhang aus.

Ich wüsste nicht, warum der port einen Unterschied machen sollte, wenn der Piwik-Adminbereich schon läuft - das tut er doch, oder?

Hallo Thomas,

danke für Deine Antwort. Ich war bloß am WoEnde weg und konnte nicht weitermachen.

Dafür hat mich Dein Hinweis ne Riesenecke weiter gebracht.
Ich erhalte nämlich auf der piwik.php ein “403 Forbidden”.

Nachdem ich so ziemlich alle Datei-Rechte-Kombinationen ausprobiert und diverse Postings gelesen hatte,
bin ich auf meinen “Fehler” gekommen:

Ich hab in der htaccess eine RewriteCond drin, die “http” in den URL-Parametern mit 403 abbügelt.


RewriteCond %{QUERY_STRING} ^.+http [OR]

Wenn ich diese testweise mal rausnehme, dann läuft der Aufruf korrekt durch.

Die RewriteCond muss aber erhalten bleiben.

Gibts eventuell eine Möglichkeit, wie ich das Problem anders lösen kann?
Ähnliches Problem wurde in diesem Posting hier schon diskutiert, aber leider ohne Lösung.

Ich hab schon eine Exclude-Lösung gefunden, damit der Piwik-Ordner für die RewriteCond ausgenommen ist, bin mir aber sicher, ob dann wirklich nur und ausschliesslich der Piwik-Ordner ausgeschlossen wird.
So sieht die Lösung aus:


RewriteCond %{REQUEST_FILENAME} !/piwik/(.*)
RewriteCond %{QUERY_STRING} ^.+http [OR]
....

Im Test sieht es gut aus, würde mich aber mit Bestätigung wohler fühlen.

Danke und Gruß
Andreas

Jetzt ging mein Tracking ein paar Tage gut, aber seit 23.Feb gehen wieder keine Daten ein.
Hab allerdings keine Ahnung, ob ich an diesem Tag irgendwas speziell geändert haben könnte, was von da an das Tracking verhindert hat.

Mit dem Firebug hab ich überprüft, ob das piwik.js geladen und über piwik.php die Rückmeldung erfolgt.
Beides ist ok, wie oben von Thomas gefragt.
Die piwik.php wird mit einem “200 OK” quittiert und an den Aufruf ist ein Rattenschwanz an URL-Parametern gekoppelt (idsite=1, rec=1, url=xx, res=xx, action_name=xxx, etc. etc.).

Für mich sieht das soweit eigentlich nicht schlecht aus.

Ich hatte Ende Februar dann diverse Plugins probiert (AnonymizeIP, Sprachen, Forecast) aber auch z.T. wieder deaktiviert.
Zudem hab ich für mich selber den Cookie gesetzt, dass meine Besuche nicht gezählt werden.

Nachdem bis heute keinerlei Daten eingegangen sind, hab ich mehrere Plugins wieder deaktiviert, vielleicht dass diese das Tracking verhindern.

Kann mir bitte jemand Hilfestellung geben, wie ich meinen Fehler wieder eingrenzen und beheben kann?

Danke und Gruß
Andreas