folgendes Problem: ich lade per include eine Datei formlar.php aus einem Unterordner in eine Datei start.php. Diese Datei enthält ein Formular, das auf sich selbst zeigt, und weitere includes (bsp. zu einer Datei mit Funktionen zum Datenbank-Connect). Der Inhalt der formular.php wird nun so verarbeitet, als wäre er Inhalt der start.php. Führe ich nun das Formular aus, wird formular.php direkt geladen. In diesem Moment ändert sich die relative Position des ausführenden Scripts. Somit stimmen meine relativen includes nicht mehr.
Ich habe nun versucht, absolute Angaben zu verwenden, aber so, dass das Ganze auf andere Maschinen portierbar bleibt, beispielsweise so:
- Code: Select all
include "http://$SERVER_NAME/data/connect.php";
Dieser Include funktioniert auch, aber der Geltungsbereich meiner Variablen reicht nicht bis dorthin, ebenso kommen Variablen aus so incluierten Dateien nicht zurück. Ich kann also Variablen nur per Refferer mitschicken bzw. nur print oder echo-Ausgaben zurückbekommen.
Zweiter Ansatz war, das Vorhandensein bestimmter Variablen zu testen, die erst nach Abschicken des Formulars vefügbar sind, und dementsprechend zwei Pfadversionen anzubieten. Das finde ich aber sehr aufwändig.
Ich suche nun nach einer eleganteren Lösung, um knackige Includes zu schreiben, unabhängig vom relativen Standort der aufrufenden Datei und unabhängig vom Server (also nicht ab Serverroot).
Bin für jeden Vorschlag dankbar.
cu Micha