de.comp.lang.php.* FAQ

13.11. Wie übergebe ich Variablen an eingebundene Dateien?

Antwort von Johannes Frömter

Gar nicht. Mittels include() oder require() in ein PHP-Programm importierte Scriptteile "erben" automatisch die Variablen, die an dieser Stelle des Scriptes vorhanden sind (siehe auch: Geltungsbereich von Variablen im Manual). Einleuchtend wird dies, wenn man sich vergegenwärtigt, dass durch include() der einzubindende Scriptteil quasi an die Stelle des Befehls kopiert wird.

// $var soll an script.php übergeben werden

// Funktioniert nicht
include('script.php?var=test');

// So geht das
$_GET['var'] = 'test'; // oder bei altem script.php $var = 'test';
include('script.php');

// So geht's bei externen Dateien
include('http://example.com/script.php?var=test');

Versucht man bei lokalen Dateien eine Variablenübergabe wie bei HTTP (erstes Beispiel), meldet PHP, dass es die Datei script.php?var=test nicht finden kann - was auch völlig korrekt ist, da es eine Datei mit diesem Namen nicht gibt ...

Antwort von Kerry W. Lothrop

Beim Übergeben der Parameter durch vorheriges Setzen (also beim Aufruf über das Dateisystem) ist die Methode stark davon abhängig, wie in der eingebundenen Datei auf die externe Variablen zugegriffen wird. Die Variablen sollten dann immer so gesetzt werden, wie sie auch im eingebundenen Skript angesprochen werden, also z.B. $HTTP_GET_VARS['var'] oder $_POST['var'].

Beim Einbinden externer Dateien, die die Parameter über die Arrays $_POST oder $HTTP_POST_VARS ansprechen, muss ein POST-Request formuliert werden (siehe Wie kann ich einen HTTP POST-Request absenden?).

Valid HTML 4.01! Valid CSS!

13.11. Wie übergebe ich Variablen an eingebundene Dateien?
http://www.php-faq.de/q/q-datei-uebergabe.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team