Seite 1 von 1

global Variablen Problem

Verfasst: 05.02.2015 07:29
von TimoMF
Hallo,

ich bin ja dabei eine Extension zu schreiben mit der BBClone unter phpBB 3.1.x funktioniert.

Inzwischen habe ich es weitestgehend am laufen und bin auf ein Problem mit 'global' gestossen. Die Extension ruft die 'mark_page.php' auf. In der 'mark_page.php' wird dann die 'config.php' und auch die 'log_processor.php' geladen per 'require_once'. In der 'log_processor.php' sind dann die Variablen aus der 'config.php' nicht mehr verfügbar, obwohl die dort mit 'global' doch verfügbar sein sollten.

Woran mag das liegen, mus ich die noch vorher in meiner Extension freigeben? Wenn ja wie?

Gruß Timo

Re: global Variablen Problem

Verfasst: 05.02.2015 11:34
von Wolfsblvt
Welche Variablen sind denn nicht mehr sichtbar?
Also was ist die genaue Fehlermeldung?

Aufpassen würde ich auf jeden Fall mit der config.php, wenn die Daten nämlich in einer Variable names $config gespeichert werden, kommt es ziemlich sicher zu Problemen.

Re: global Variablen Problem

Verfasst: 05.02.2015 13:49
von TimoMF
Danke für die schnelle Antwort.

Es gibt keine Fehlermeldung.
Wenn ich die Variablen auslese sind sie leer.

Die Variablen fangen alle mit '$BBC_' an, also sollte das keinen Konflikt mit der $config geben wegen der doppelten Belegung.

Da sie leer sind und nicht wie z.B. bei dieser '$BBC_MAXVISIBLE = 100;' mehr den Wert 100 haben ist anschlessend auch die Liste leer. So äussert sich das Problem.
Diese Variable wird mit 'global' in einer Funktion in der 'log_processor.php' aufgerufen. Dort ist sie dann leider leer.
Da es nur unter phpBB 3.1.x diese Probleme gibt, gehe ich davon aus das ich die Variablen die Global genutzt werden sollen auch irgend wo freigeben mus. Nur wo und wie?


Gruß Timo

Re: global Variablen Problem

Verfasst: 05.02.2015 14:33
von Wolfsblvt
Globale Variablen funktionieren weiterhin. Sollten nur vermieden werden.
Lediglich die Superglobals ($_SERVER, $_REQUEST etc.) gehen nicht mehr, außer man aktiviert sie.

Wie siehts denn aus, ist es möglich dass du den Code postest? Vielleicht erkennt man dann ja auf die Schnelle den Fehler.


Wobei halt die Frage ist, wenn du exakt dasselbe wie unter phpBB 3.0.x benutzt, und es jetzt aber nicht funktioniert, wird das wohl wirklich eine andere Ursache haben.

Du könntest es mal mit

Code: Alles auswählen

$request->enable_super_globals(); 
vor dem ersten Aufruf probieren.
Glaube aber nicht, dass das die Lösung ist.

Re: global Variablen Problem

Verfasst: 05.02.2015 14:57
von TimoMF
Enable_super_globals nutze ich bereits da BBClone ja eine Webstatistic ist und die Superglobals abfragt.

So wird BBClone aufgerufen aus der Ext:

Code: Alles auswählen

	public function bbclone_viewtopic($event)
	{
		$this->request->enable_super_globals();
		$label_for_bbclone = 'Forum topic: '.$event['topic_data']['topic_title'];
		define("_BBC_PAGE_NAME", $label_for_bbclone);
		define("_BBCLONE_DIR", "./bbclone/");
		define("COUNTER", _BBCLONE_DIR."mark_page.php");
		if (is_readable(COUNTER)) include_once(COUNTER);
		$this->request->disable_super_globals();
	}
Download BBClone_ext

Unter phpBB 3.0.x funktionierte der Aufruf noch, wie auf dieser Seite beschrieben. Angepasst ist die '$label_for_bbclone' Variable, da sich die Variablen ja geändert haben.

BBClone selbst Poste ich hier lieber nicht aber die Downloadseite könnte ich posten da sollten die Autoren wohl nichts gegen haben.
http://www.bbclone.de/download.php