Illegal offset type im Freetag-Plugin

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
qbi
Regular
Posts: 29
Joined: Sun Aug 05, 2018 6:52 pm
Contact:

Illegal offset type im Freetag-Plugin

Post by qbi » Tue Nov 23, 2021 12:35 pm

Ich habe in meinem PHP-Errorlog einige Einträge der Art:

Code: Select all

[23-Nov-2021 12:04:43] WARNING: [pool www] child 7379 said into stderr: "[23-Nov-2021 12:04:43 Europe/Berlin] PHP Warning:  Illegal offset type in unset in …/plugins/serendipity_event_freetag/serendipity_event_freetag.php on line 1551"
Daraufhin versuchte ich in der betreffenden Datei mal ein var_dump(). Leider brachte mir das keine Offenbarung. Diese Ausgabe sieht in etwa so aus:
string(8) "chemnitz" NULL string(7) "commons" NULL string(8) "computer"
Das entspricht der Ausgabe funktionierender Seiten.

Habt ihr eine Idee, woher die Warnung kommt und wie ich wegbekommen kann?

User avatar
onli
Regular
Posts: 2552
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by onli » Thu Nov 25, 2021 4:22 pm

Schau bitte zuerst, ob dir ein Pluginupdate zur Verfügung steht. Das Freetag-Plugin hat die aktuelle Version 3.70.3?

qbi
Regular
Posts: 29
Joined: Sun Aug 05, 2018 6:52 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by qbi » Thu Nov 25, 2021 10:17 pm

Ja, das sieht gut aus:
Freie Artikel-Tags
serendipity_event_freetag
Erlaubt das freie Tagging von Artikeln
Weitere Informationen
Autor: Garvin Hicking, Jonathan Arkell, Grischa Brockhaus, Lars Strojny, Malte Paskuda, Ian
Version: 3.70.3

User avatar
onli
Regular
Posts: 2552
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by onli » Fri Nov 26, 2021 5:18 pm

Okay.

Ich habe mir die Codestelle auf Github angesehen, https://github.com/s9y/additional_plugi ... .php#L1551, aber ich kopier sie hier rein:

Code: Select all

unset($tags[$tag]);
Ich würde vermuten, dass $tag entweder schon vorher entfernt wurde oder etwas absurdes ist, was nie gesetzt werden konnte (was auch immer, im Zweifel null). Du könntest dann vorher mit isset prüfen, was dann auch die Theorie bestätigt oder widerlegt:

Code: Select all

if (isset($tags[$tag])) {
    unset($tags[$tag]);
}
Die var_dump-Ausgabe sieht aber auch komisch aus, vielleicht ist das etwas anderes. Aber mit dem Check hier würde ich anfangen.

qbi
Regular
Posts: 29
Joined: Sun Aug 05, 2018 6:52 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by qbi » Sat Nov 27, 2021 12:28 pm

So ich habe jetzt mal ein wenig weiter gegraben. Dein Vorschlag hat keine Änderungen gebracht.

Aber es scheinen nur bestimmte Abfragen diesen Fehler zu erzeugen. Beispiel: https://kubieziel.de/blog/archives/plug ... ag/vortrag

Der var_dump() erbringt dann:
NULL array(8) { [0]=> string(4) "spam" [1]=> string(9) "verlosung" [2]=> string(6) "berlin" [3]=> string(3) "vim" [4]=> string(3) "usa" [5]=> string(6) "plugin" [6]=> string(3) "tag" [7]=> string(7) "vortrag" }
Das NULL ist das Ergebnis von

Code: Select all

var_dump($tags[$tag]);
.

User avatar
onli
Regular
Posts: 2552
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by onli » Sat Nov 27, 2021 3:47 pm

Hm, erscheint die Fehlermeldung jetzt laut Log in der Zeile vom if oder in der vom if umschlossenen?

qbi
Regular
Posts: 29
Joined: Sun Aug 05, 2018 6:52 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by qbi » Sat Nov 27, 2021 4:07 pm

Dies erscheint außerhalb des if. Soweit ich erkennen kann, werden die Bedingungen innerhalb der if-Anweisung nicht ausgeführt.

User avatar
onli
Regular
Posts: 2552
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by onli » Sat Nov 27, 2021 8:43 pm

Mir fällt nur noch ein, dass du vorher auch prüfen könntest das $tag nicht null ist, auch dass es ein String ist ist mit is_string prüfbar. In etwa so:

Code: Select all

if ($tag != null && is_string($tag) && isset($tags[$tag])) {
    unset($tags[$tag]);
}
Irgendein Wert für $tag sollte die Fehlermeldung produzieren.

Wenn es das nicht ist übersehe ich etwas oder habe einen Knoten im Kopf gerade.

qbi
Regular
Posts: 29
Joined: Sun Aug 05, 2018 6:52 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by qbi » Sat Nov 27, 2021 8:53 pm

Das sieht gut aus. Ich kann die Fehlermeldung nicht mehr reproduzieren und in den letzten 500 Requests ist auch keine Meldung mehr zu finden. Danke!

User avatar
onli
Regular
Posts: 2552
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Illegal offset type im Freetag-Plugin

Post by onli » Sat Nov 27, 2021 8:55 pm

Alles klar, dann pack ich das als Update ins Plugin :)

Post Reply