Fehlermeldung bei falsch login im shop

hallo wenn mann sich bei uns im shop mit falschen daten anmeldet gibt es folgende fehler meldung

WARNING(2): “explode() expects parameter 2 to be string, array given” in /includes/piwik/piwik_ecommerce_tracking.php:20 (Details)
WARNING(2): “Invalid argument supplied for foreach()” in /includes/piwik/piwik_ecommerce_tracking.php:20 (Details)

kann mir jemand helfen danke cu

lui

Hi m8trix,

da scheitn etwas mit der Datenübergabe nicht zu stimmen; wie du nämlich aus der Fehlermeldung entnehmen kannst, wird ein anderer Typ an Datensatz erwartet.

Poste bitte den Inhalt aus der Datei /piwik_ecommerce_tracking.php. Dafür kannst du z.B. pastebin.com nutzen, weil es die interne CODE - Funktion hier im Forum wohl sprengen wird.

Falls die Datei persönliche Informationen enthält, solltest du diese zuvor zensieren.

l

Okay,

die Fernanalyse gestaltet sich schwieriger als ich dachte.

Hast du die Möglichkeit zu überprüfen, ob die Variabel $parameters bereits angesprochen wurde und wo genau die Datei piwik_ecommerce_tracking.php inkludiert wird?

Informationen zur betroffenen Variabel wären nicht verkehrt, darum gehe bitte wie folgt vor:

Finde diese Zeile in der Datei (Zeile 20):

foreach(explode("&",$parameters) as $pair) {

Füge VOR der Zeile den folgenden Code ein:

print_r($parameters) . exit;

Dieser Code wird die Werte der Variabel $parameters ausgeben, die in diesem Fall die Fehlermeldung projiziert und danach die Bearbeitung des Skripts prompt stoppen. Nachdem die Ausgaben vorliegen, poste diese bitte hier und entferne anschließend den eingefügten Code.

Wie immer gilt: Persönliche Informationen dürfen maskiert werden.

ich habe den code geändert in

$pararray = array();
print_r($pair) . exit;
foreach(explode("&",$parameters) as $pair) {
$values = explode("=",$pair);
if(!empty($values[0])) {
$pararray[$values[0]] = $values[1];
}
}…

allerdings kommt beim falsch login keine fehlermeldung mehr und keine ausgabe mache ich was falsch

Ich hatte mich anfangs geirrt mit der Variabel, entferne die Änderungen und führe den Schritt mit obigen Code erneut durch bitte.

ich bekomme folgende werte für $parameters
Array ( [0] => action [1] => cPath [2] => products_id [3] => pid )

Ohne jetzt den Rest des Codes zu kennen, was passiert wenn du folgendes probierst?

Ersetze diese Zeile…

foreach(explode("&",$parameters) as $pair) {

mit dieser Zeile

foreach($parameters as $pair) {

Suche danach diese Zeile:

$cPath = (isset($pararray['cPath']))?$pararray['cPath']:false;

Schreibe folgendes über der Zeile:


echo '<h1>$pair:</h1>';
print_r($pair);
echo '<h1>$parameters:</h1>';
print_r($parameters);
echo '<h1>$pararray:</h1>';
print_r($pararray);
echo '<h1>$pararray[\'products_id\']</h1>';
echo $pararray['products_id'];

Anschließend bitte Ausgabe posten.

danke für deine hilfe die ausgabe ist:

$pair:

pid
$parameters:

Array ( [0] => action [1] => cPath [2] => products_id [3] => pid )
$pararray:

Array ( [action] => [cPath] => [products_id] => [pid] => )
$pararray[‘products_id’]

ich habe den grund es ligt an der php version 5.3 und piwik 1.8.2

mit php 5.2 kommt auch kein fehler mehr ich teste mal

php 5.3 und piwik 1.8.4

danke für euere hilfe cu