PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Includieren der Datamanager-Dateien ==> Fehler



mic_jan
04.02.2008, 18:47
Sorry, beschäftige mich erst seit neuestem mit vB und darum weiß ich nicht, warum dieser Code nicht funktioniert:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------denn dann erhalte ich folgende Fehlermeldung:


Warning: array_keys() [function.array-keys]: The first argument should be an array in /includes/functions.php on line 3924

Warning: Invalid argument supplied for foreach() in /includes/functions.php on line 3924


Fatal error: Call to a member function query_read_slave() on a non-object in /absoluter_pafd/testvb/includes/functions.php on line 2952
Über sachdienliche Hinweise freut sich,

Michael

Andreas
04.02.2008, 18:54
Spar dir die includes (außer global.php, ggf. reicht auch init.php).

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

mic_jan
04.02.2008, 19:35
hmmm... ich habe jetzt einfach nur die global.php eingebunden und bekomme dann diese Meldung:

Fatal error: Call to a member function query_first_slave() on a non-object in /absoluter_pfad/testvb/includes/functions.php on line 1230
Die gleiche Fehlermeldung erhalte ich , wenn ich die init.php einbinde. Die Doku zum Datamanager finde ich in diesem Bezug nicht wirklich hilfreich.

Gibt es da irgendwas besseres? Oder Tipps, Hinweise, etc.?

Gruss,

Michael

ragtek
04.02.2008, 19:47
HIer gibts viele infos: http://www.vbulletin.org/forum/forumdisplay.php?f=187

Andreas
04.02.2008, 19:53
Wird og. Code innerhalb einer Funktion/Methode aufgerufen?

Falls ja kriegst Du ggf. Probleme mit dem Scope.
In diesem Fall vorher mal global $vbulletin, $db; versuchen.

tgs_chris
10.02.2008, 18:17
Hallo Leute,

ich bin gerade auf das Thema gestoßen und habe ein ähnliches Problem.
Ich schreibe gerade ein "Newsscript", dass die News auch als neues Thema im vBulletin Forum anlegen soll.
Das ganze klappt auf meiner Testinstallation (lokal, mit vBulletin 3.6.8) auch sehr gut. Nur wenn ich das auf den Server (PHP 5.2.5-pl1-gentoo & MySQL 5.0.54) auf dem es laufen soll aufspiele und teste bekomme ich beim einbinden der "global.php" den FATAL ERROR:
HTML:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------Der Fehler wird, wie zu sehen, in der init.php beim aufruf der clean_array_gpc() funktion hervorgerufen. Die selbe funktion wird in der global.php auch verwendet und dort läuft kein Fehler auf.

Der Code den ich zum anlegen verwende is allseits bekannt, trotzdem nochmal hier:
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------Ich hoffe Ihr könnt mir weiterhelfen.

Gruß und Danke,
Christoph

Andreas
10.02.2008, 18:55
Wird der Code innerhalb einer Funktion/Methode ausgeführt?

tgs_chris
10.02.2008, 19:15
Ja wird sie. Das ist eine eigene Funktion (vBulletinPost()).

ragtek
10.02.2008, 19:18
Eventuell http://at2.php.net/global ?
Steht auch hier: http://www.vbulletin-germany.org/showpost.php?p=11435&postcount=5

tgs_chris
10.02.2008, 19:19
schon probiert, das hat nichts gebracht

ragtek
10.02.2008, 19:20
wie schaut den die komplette Funktion aus?

mic_jan
10.02.2008, 19:21
schon probiert, das hat nichts gebracht
Das hatte ich auch schon gemacht... mit dem gleichen Resultat und habe daraufhin die Entwicklung erst sein lassen...

Gruss,

Michael

Andreas
10.02.2008, 19:40
Und bist Du nicht willig so brauch ich Gewalt ;)

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

tgs_chris
10.02.2008, 19:42
PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------/EDIT:

Habs mit deinem code probiert... das selbe in hellgrün :(
HTML:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------

Christoph
11.12.2009, 16:30
Ich habe das gleiche Problem, sobald ich die global.php include bekomme ich folgende Fehlermeldung:



Warning: array_keys() [function.array-keys (http://02.kunstpiste.edelwiser.vss.kapper.net/wp-content/plugins/vBulletin/function.array-keys)]: The first argument should be an array in [path]/includes/functions.php on line 4229

Warning: Invalid argument supplied for foreach() in [path]/includes/functions.php on line 4229

Fatal error: Call to a member function query_read_slave() on a non-object in /var/kunden/webs/kunstpiste/v2/forum/includes/functions.php on line 3191

Andreas
12.12.2009, 10:32
global.php innerhalb einer Funktion/Methode zu laden ist (wenn auch nicht unmöglich) recht tricky
-> Mach dir das Leben einfach und lade global.php in globalem Kontext.

Christoph
12.12.2009, 11:34
Wenn ich es in einem seperaten File lade funktioniert es. Ich brauche die Funktionalität jedoch für ein Wordpress-Plugin und würde die vBulletin-Zugriff daher gerne in einer seperaten Klasse kapseln.
Hier mein Code:



class vbAccess{
/**
* Constructor
*/
var $vB_Path;

function __construct($path){
$this->vB_Path = $path;
$cwd = getcwd();
chdir($this->vB_Path);

global $vbulletin;
global $db;
require_once($this->vB_Path.'/global.php');

//chdir($cwd);
}
}

Was mache ich falsch?

Andreas
12.12.2009, 11:45
Du wirst keine Freude daran haben ... vBulletin kann man (aufgrund der inflationären Verwendung globaler Variablen) nicht kapseln.

PHP:
----------
Der Inhalt dieses Abschnitts ist nur für Lizenznehmer sichtbar, Sie werden derzeit jedoch nicht als Lizenzinhaber erkannt.<br />
<br />
Bitte öffnen Sie den <a href="http://members.vbulletin-germany.com/membersupport_priority.php">Kundenbereich</a>, tragen Sie Ihre E-Mail-Adresse ein, mit der Sie sich hier registriert haben und aktivieren Sie die Lizenzüberprüfung für http://www.vbulletin-germany.org.
----------