Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 06. Dezember 2013 22:39

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Modul Statistik: Warning: join(): Invalid arguments passed

Hallo zusammen,

wenn ich meine Seite auf Google suche und dem Suchmaschinen-Link folgen möchte, wird mir folgende Fehlermeldung auf der Seite angezeigt:

Warning: join(): Invalid arguments passed in [...]/modules/Statistics/Statistics.module.php on line 471

In Zeile 471 des Scriptes steht folgender Inhalt:

$statkeywords=$this->ReplaceKeywords(join(" ", $keyword_array));

Der bei Google gesuchte String besteht aus drei einzelnen Worten.

Die Tipps in diesem Thread habe ich bereits ausprobiert: ich konnte kein Ergebnis erzielen.

Hat von euch noch jemand einen Tip für mich, wie ich das Problem lösen kann?

Danke im Voraus.

Schöne Grüße
Darkholylein

Offline

#2 07. Dezember 2013 10:13

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.380

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Eigentlich steht die Lösung in diesem Beitrag: http://www.cmsmadesimple.de/forum/viewt … 301#p28301


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 07. Dezember 2013 10:58

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Re: Modul Statistik: Warning: join(): Invalid arguments passed

NaN schrieb:

Eigentlich steht die Lösung in diesem Beitrag: http://www.cmsmadesimple.de/forum/viewt … 301#p28301

Hallo NaN,

den Thread habe ich bereits gelesen, meines erachtens stimmt die Reihenfole im Code so, wie sie in meinem Ausgangspost steht. Ich habe auch schon das Wort "join" durch "implode" ersetzt, aber die Fehlermeldung ist trotzdem aufgetaucht.

Gibt es vllt. eine Einstellung, die ich im Statistik-Modul setzen muss?

Gruß
Darkholylein

Offline

#4 07. Dezember 2013 11:28

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.423

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Seltsam... in meiner Datei befindet sich der besagte Code nicht bei Zeile 471, sondern viel weiter unten.

Es gab mal eine inoffizielle Version 1.1.3a, die ich überall einsetze. Ich weiß aber nicht mehr, wo die her kam.
Welche Version wird bei dir angezeigt?

Offline

#5 07. Dezember 2013 11:31

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Ich habe Version 1.1.3

Offline

#6 07. Dezember 2013 11:33

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.423

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Du kannst dir ja mal die 1.1.3a von mir anschauen, bzw. ausprobieren.
https://www.dropbox.com/s/71cznjqrlzpf8 … 1.1.3a.zip

Offline

#7 10. Dezember 2013 12:39

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Also, ich hab mir grade mal die 1.1.3a angeschaut...
Vom Code her ändert sich was Referer betrifft nichts, daran kann es also nicht liegen.

Ich habe jetzt auch mal etwas weiter analysiert:
Wenn ich auf yahoo.de die 3 Stichworte eingebe, bekomme ich die Fehlermeldung nicht und alles wird Korrekt in der Datenbank eingetragen.
Wenn ich die 3 Stichworte bei google.de eingebe, bekomme ich weiterhin die Fehlermeldung und es wird nichts in der Datenbank eingetragen.

Aktuell weiß ich nicht, wie ich das Problem beheben soll... Hat jemand von euch eine Idee?
Vermutlich liegt das Problem hier drin:

[== php ==]
if (preg_match("/www\.google/i",$url)) {         
preg_match("'(\?|&)q=(.*?)(&|$)'si", " $url ", $keywords);         
$search_engine = 'Google';       } 

Danke und schöne Grüße
Darkholylein

Beitrag geändert von Darkholylein (10. Dezember 2013 12:44)

Offline

#8 10. Dezember 2013 14:46

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Ich habe noch mal etwas weiter nachgeforscht...
Wenn ich diesen Teil des Skriptes:

[== php ==]
$url="https://www.google.de/#q=Wort1+Wort2+Wort3";    
if (preg_match("/www\.google/i",$url)) {         
          preg_match("'(\?|&|#)q=(.*?)(&|$)'si", " $url ", $keywords);         
          $search_engine = 'Google';       
}
if ((preg_match("/yahoo\.com/i",$url)) or (preg_match("/search\.yahoo/i",$url))) {
          preg_match("'(\?|&)p=(.*?)(&|$)'si", " $url ", $keywords);
          $search_engine = 'Yahoo';
}
// create keyword array
if (($keywords[2] != '') and ($keywords[2] != ' ')) {
         $keywords = preg_replace('/"|\'/', '', $keywords[2]); 
         // remove quotes         
         $keyword_array = preg_split("/[\s,\+\.]+/", $keywords); // create keyword array
}
$name=join($keyword_array, " "); 	
echo $name;

getrennt betrachte, bekomme ich folgende Ausgabe: "Wort1 Wort2 Wort3".
Soweit ist das ja korrekt. Wenn ich die URL auf den Suchstring von Yahoo ändere, bekomme ich das gleiche Ergebnis.

Trotzdem ist es immer noch der Fall, dass ich bei Anklicken des Suchergebnisses in Google die Fehlermeldung:
Warning: join(): Invalid arguments passed
und die Suchwörter werden nicht im Statistik-Modul eingetragen.
Wenn ich das Suchergebniss bei Yahoo anklicke, funktioniert alles einwandfrei...

Solangsam bin ich echt am Verzweifeln...

Offline

#9 10. Dezember 2013 14:53

Darkholylein
hat von CMS/ms gehört
Registriert: 10. August 2013
Beiträge: 15

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Ah, ich habe die Lösung gefunden...

Google benutzt für seine Suche HTTPS-Seiten. Wenn von HTTPS auf HTTP verlinkt wird, wird kein REFERER mitgegeben...
Yahoo benutzt noch HTTP-Seiten für seine Suche, deswegen funktioniert das.

Offline

#10 10. Dezember 2013 15:51

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.380

Re: Modul Statistik: Warning: join(): Invalid arguments passed

Das wurde glaube ich sogar vor ein oder zwei Jahren angekündigt.
Damals haben sich einige darüber aufgeregt, weil man eben solche Tools wie statistische Erfassung von Suchbegriffen oder das Hervorheben von Suchbegriffen im Text nicht mehr anwenden kann. (Aber zumindest für die Suchbegriff-Statistik kann man ja Google-Webmaster Tools bzw. Analytics verwenden)

Man sollte die Variable $keyword_array generell als Array() deklarieren. Dann sollte dieser Fehler nicht auftreten. Also in der Zeile 532 (Statistics 1.1.3a) bzw. 462 (Statistics 1.1.3) gleich unter "// create keyword array" diese Zeile einfügen:

Somit ist man zumindest diese Warnung los.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12.2 unter PHP 7:
cmsms-1.12.2-php7.2-diff.tar.gz (nur die geänderten Dateien)
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)

Offline