Includeprobleme

Includeprobleme

von Steffen Schneider -
Anzahl Antworten: 8
Hallo,

wir sind gerade dabei Moodle auch für uns zu entdecken. Dabei stoßen wir leider an unerklärliche Probleme.

Folgendes wir haben Moodle nicht als Hauptprojekt laufen, sondern als Plattform unter der eigentlichen Präsenz.

Wir wollen da natürlich auch unsere Inhalte aus der Hauptpräsenz einsetzen, die auch Datenbankgestützt vorhanden sind.

Wir haben in der Config die Zeilen etwas erweitert und wollten unsere Variblen im Moodle Bereich auch bereit stellen. Nur leider klappt das nicht so recht.

eine einfache include Anweisung wird ja noch ausgeführt, aber wenn ein Echo auf eine Konstante z.b. gesetzt wird, ist diese nicht verfügbar.

Wie können wir es schaffen "unsere Variblen" auch im Moodle LMS einzubinden?

Vielen Dank für eure Hilfe
lg Dasty
Mittelwert:  -
Als Antwort auf Steffen Schneider

Re: Includeprobleme

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler
Hallo,
bei $CFG hilft entuell die Anweisung "global $CFG;"
Denn selbst, wenn eure includierten Dateien keine Funktionen enthalten, so könnte es sein, dass die include-Anweisung selbst in einer Funktion steht und somit das Objekt $CFG nicht zu sehen ist.
Konstanten, die mit define() definiert wurden, sollten überall sichtbar sein.
Als Antwort auf Andreas Grabs

Re: Includeprobleme

von Steffen Schneider -
Hi,

das Problem ist nicht die Datei zu includieren, sondern die Variablen aus der includierten Datei heraus zu bekommen. Zum Beispiel habe ich eine Datei wo nur konstanten enthalten sind, diese sollen dann einige Textblöcke z.b. vom Header ersetzen. Diese Konstanten werden allerdings nicht erkannt, selbst bei einem var_dump(Konstante); kommen keine Ergebnisse. Was aber komischerweise funktioniert , man kann zum beispiel in der Datei die Includiert wird, ein echo 'hallo'; einsetzen und dieses wird dann auch gefunden.

Ich bin an der Stelle ziemlich ratlos, denn ich wollte nicht die gesamten Konstanten im Moodle noch einmal aufsetzen.

Vielen Dank
Als Antwort auf Steffen Schneider

Re: Includeprobleme

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler
Was steht den nun eigentlich drin in der Datei die du includest?
Konstanen (mit define() definiert) oder
Variablen?
Als Antwort auf Andreas Grabs

Re: Includeprobleme

von Steffen Schneider -
Hallo,

also in der Datei steht einfach nur eine define('KONSTANTE','Ausgabe');

Mehr steht in den Dateien nicht drin. Ich hab auch schon versucht die Konstanten über defined auszulesen, aber die kommen einfach nicht an. Liegt es eventuell daran, das dateien die nicht im Moodleroot liegen garnicht erst zugelassen werden?

Vielen Dank für deine Hilfe.

Als Antwort auf Steffen Schneider

Re: Includeprobleme

von Maik Riecken -

Eine sehr dämliche Idee, aber...

Auf was steht denn register_globals in der php.ini?

Gruß,

Maik

Als Antwort auf Maik Riecken

Re: Includeprobleme

von Steffen Schneider -
Hallo,

die Register Globals steht auf off. Daran kann es also nicht liegen, denn ich greife auf globale Variblen sowieso mit POST oder GET zu oder ähnlichem.

Hast du vielleicht noch eine andere Idee?

mfg
Als Antwort auf Steffen Schneider

Re: Includeprobleme

von Maik Riecken -
Ja,

Was sagen denn die Log-Dateien zu dem Thema? Namentlich dir error.log des Apache (Volltextsuche nach dem Dateinamen der includierten Datei)?
Was kommt raus, wenn du PHP anweist, alle Fehler an den Browser zu senden? Der muss sich doch irgendwo melden....

Gruß,

Maik
Als Antwort auf Steffen Schneider

Re: Includeprobleme

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler
Also moodle ist es egal, wo die Datei liegt, die du includest. Allerdings, wenn du sagst, dass die Datei außerhalb von moodleroot liegt, dann könnte es sein, dass in der php.ini die Einstellung für "open_basedir" genau diesen Zugriff verhindert.
Außerdem:
Wie gibst du den Pfad zur Datei an.
  • include('../includefile');
    oder
  • include($CFG-dirroot . '/../includefile');
Bei der ersten Version kann es je nach Aufruf der config.php zu Problemen kommen. In einigen Dateien wird die config nämlich aus einen tieferliegendem Verzeichnis aufgerufen, so dass der Pfad zur Includedatei in diesem Fall nicht stimmt.