PHP-Warnung in "Checking group membership"

Du hast Probleme beim Installieren oder bei der Benutzung einer Extension? In diesem Forum bist du richtig.
Forumsregeln
Bei Fragen zu einer bestimmten Extension sind Extension-Name und die Downloadquelle der Extension erforderlich. Letztere in Form der URL zum Download.
eumelchen
Mitglied
Beiträge: 671
Registriert: 09.02.2008 08:28
Wohnort: Gottin

PHP-Warnung in "Checking group membership"

Beitrag von eumelchen »

Hallo zusammen,

heute hatte ich zufällig mal in de Error-Logs auf dem Server angesehen und da folgende Meldung gefunden:
[Sun Feb 18 17:37:53 2018] [-:error] [pid 31328] [client 100.76.138.100] [host http://www.forum.de] PHP Warning: Invalid argument supplied for foreach() in /is/htdocs/wp67211_MOYUN7QYCB/www/forum/ext/kirk/checking_group_membership/event/listener.php on line 97
Ich habe zwar noch keine Auswirkung fesrgestellt, es wäre aber sicher besser diesen Fehler zu korrigieren.

Mein Forum läuft unter PHP 7 und da wird scheinbar "foreach" nicht mehr unterstützt.
Kann mir jemand sagen was man da ändern muss?

Gruß
Rolf (eumelchen)
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: PHP-Warnung in "Checking group membership"

Beitrag von Mahony »

Hallo
eumelchen hat geschrieben:Mein Forum läuft unter PHP 7 und da wird scheinbar "foreach" nicht mehr unterstützt.
Hehe :D wie kommst Du denn auf DAS schmale Brett? Das wäre ja eine Katastrophe, wenn dem so wäre.

Die Fehlermeldung besagt, dass der Benutzer keiner Gruppe angehört.

Was ergibt denn diese Abfrage?

Code: Alles auswählen

SELECT phpbb_users.* FROM phpbb_users LEFT JOIN phpbb_user_group ON phpbb_users.user_id = phpbb_user_group.user_id WHERE phpbb_user_group.user_id IS NULL 
Wenn als Ergebnis der Gast-Benutzer (Anonymous mit der user_id = 1) herauskommt, dann musst du den Benutzer (Anonymous ) der Gast-Gruppe hinzufügen.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
eumelchen
Mitglied
Beiträge: 671
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: PHP-Warnung in "Checking group membership"

Beitrag von eumelchen »

Hallo Mahony,
die Abfrage ergibt das hier:
MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze). ( Die Abfrage dauerte 0.0169 Sekunden )
SELECT phpbb_users . *
FROM phpbb_users
LEFT JOIN phpbb_user_group ON phpbb_users.user_id = phpbb_user_group.user_id
WHERE phpbb_user_group.user_id IS NULL
LIMIT 0 , 30
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: PHP-Warnung in "Checking group membership"

Beitrag von Mahony »

Hallo
Wie auch immer...diese Fehlermeldung
Warning: Invalid argument supplied for foreach()
bedeutet, das foreach ein Array mit Inhalten erwartet, aber nicht bekommt.

Suche also in der kirk/checking_group_membership/event/listener.php

Code: Alles auswählen

global $grouprec;
		if ( !function_exists('group_memberships') )
	{
		include($this->root_path . 'includes/functions_user.'.$this->phpEx);
	}
		$groups = group_memberships(false,$this->user->data['user_id']);
		foreach ($groups as $grouprec)
	{
			$this->template->assign_vars(array(
			 'S_GROUP_' . $grouprec['group_id'] => true
		));
	}
}
}
Ersetze mit

Code: Alles auswählen

global $grouprec;
		if ( !function_exists('group_memberships') )
	{
		include($this->root_path . 'includes/functions_user.'.$this->phpEx);
	}
		$groups = group_memberships(false,$this->user->data['user_id']);
		if(is_array($groups))
		{
		foreach ($groups as $grouprec)
	{
			$this->template->assign_vars(array(
			 'S_GROUP_' . $grouprec['group_id'] => true
		));
	}
       }
}
}
Damit wird sicher gestellt, dass es auch ein Array mit Inhalt gibt (das man dann abfragen kann).

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
eumelchen
Mitglied
Beiträge: 671
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: PHP-Warnung in "Checking group membership"

Beitrag von eumelchen »

Hallo Mahony,

das habe ich jetzt mal gemacht, jetzt habe ich folgenden Eintrag im Error Logfile:
[Mon Feb 19 08:28:44 2018] [-:error] [pid 13586] [client 54.36.148.91] [host forum.de] PHP Fatal error: require(): Failed opening required './ext/kirk/checking_group_membership/event/listener.php' (include_path='.:/usr/share/php7.0') in /is/htdocs/wp67211_MOYUN7QYCB/www/forum/phpbb/class_loader.php on line 160
LG Rolf (eumelchen)
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: PHP-Warnung in "Checking group membership"

Beitrag von Mahony »

Hallo
Bitte prüfe ob die Datei /ext/kirk/checking_group_membership/event/listener.php tatsächlich vorhanden ist und mindestens die Rechte 644 hat.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
eumelchen
Mitglied
Beiträge: 671
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: PHP-Warnung in "Checking group membership"

Beitrag von eumelchen »

Die Datei
Mahony hat geschrieben:/ext/kirk/checking_group_membership/event/listener.php
ist vorhanden und hat die Rechte 755.
Ich hatte die Datei per FTP vom Server runtergeladen, geändert und dann wieder hochgeladen.

So wie es aussieht funktioniert die Extension aber, ich habe ein paar Sachen im Forum die nur für bestimmte Gruppen zugänglich sind und das habe ich als Teilnehmer verschiedener Gruppen getestet.
eumelchen
Mitglied
Beiträge: 671
Registriert: 09.02.2008 08:28
Wohnort: Gottin

Re: PHP-Warnung in "Checking group membership"

Beitrag von eumelchen »

Vorsichtshalber hatte ich wieder den ursprünglichen Zustand der Datei listener.php hergestellt, heute Morgen waren dann so ca. 40 - 50 gleiche Fehlermeldungen, nur mit unterschiedlichen Uhrzeiten:
[Tue Feb 20 04:44:27 2018] [-:error] [pid 7047] [client 5.9.79.151] [host http://www.myforum.de] PHP Warning: Invalid argument supplied for foreach() in /is/htdocs/wp67211_MOYUN7QYCB/www/forum/ext/kirk/checking_group_membership/event/listener.php on line 97
Keiner einer Idee für eine Lösung?

LG Rolf (eumelchen)
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: PHP-Warnung in "Checking group membership"

Beitrag von Mahony »

Hallo
eumelchen hat geschrieben:Keiner einer Idee für eine Lösung?
Die Lösung zur Abfrage, ob es ein Array gibt ist schon die richtige.

Die vormals von Dir genannte Fehlermeldung
[Mon Feb 19 08:28:44 2018] [-:error] [pid 13586] [client 54.36.148.91] [host forum.de] PHP Fatal error: require(): Failed opening required './ext/kirk/checking_group_membership/event/listener.php' (include_path='.:/usr/share/php7.0') in /is/htdocs/wp67211_MOYUN7QYCB/www/forum/phpbb/class_loader.php on line 160
kann keinesfalls durch die Änderung an der Datei zustande gekommen sein.

Diese Fehlermeldung besagt nämlich, dass die Datei nicht geöffnet werden kann (weil sie entweder nicht existiert, oder nicht gefunden wird, oder die Rechte nicht stimmen). Das bedeutet wiederum, dass der Fehler unabhängig von der Änderung an der Datei auftritt.

Ich würde mal folgendes versuchen:
1. Die Extension deaktivieren
2. Die Arbeitsdaten löschen
3. Den cache leeren
4. Das Paket mit der geänderten Datei hochladen und die Extension erneut aktivieren.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
vfrblue
Ehemaliges Teammitglied
Beiträge: 1993
Registriert: 22.11.2016 18:46

Re: PHP-Warnung in "Checking group membership"

Beitrag von vfrblue »

Braucht man denn unter phpBB 3.2.x noch diese Ext.? Man kann doch über S_GROUP_x die Gruppenzugehörigkeit zuordnen. Oder liege ich da falsch?
Antworten

Zurück zu „Extension Support“