Der PHP-Befehlt include bzw. require ist sehr praktisch, um Module bzw. Funktionslibraries zuzuladen oder HTML-Bereiche, die für mehrere Seiten gleich sind.
<?php require('sicherheitsabfrage.php'); include('html-bereich-kopf.htm');
Dabei sollte man stets bewusst, sich für die passende Form entscheiden.
Fallbeispiel: Nehmen wir an, bei jeder PHP-Seite wird am Anfang die Datei für die Authentifizierungsabfrage eingebunden. Dabei sollte man dann unbedingt require nutzen und nicht include. Warum require: Findet das Programm die einzubindende Datei nicht vor, bricht es ab. Die Datei wird unbedingt benötigt (was so das englische Wort „require“ einem nahe legt). Besser man hat einen Abbruch, als eine sehr undefinierte Programmausführung.
Dateien, die für die korrekte Programmausführung nicht "wichtig" sind, können über include eingebunden werden. Das wären z.B. HTML-Dateien, in denen Inhalte und Design stecken. Würden diese fehlen, wäre die Seite zwar nicht mehr schön anzusehen, aber funktioniert weiterhin.
Teilweise habe ich auf verschiedene Seiten schon den Hinweis gelesen, dass Dateien, die eingebunden werden sollen, die Endung „.inc“ erhalten sollen. Blödsinn!! Diese Dateien müssen die Endung „.php“ haben. Wenn es unbedingt notwendig ist, dass man erkennt, dass es sich um eine einzubindende Datei handelt, kann auch die Endung in Form von „einzubindendedatei.inc.php“ genutzt werden.
Die fiktive Datei, in der die fiktiven Zugangsdaten für die fiktive MySQL-Datenbank stehen, ist im ersten Beispiel direkt im Klartext zu lesen. Bei diesem Server sind die .inc-Dateien nicht gesperrt. Beim zweiten Server sind diese Dateiendungen gesperrt für den direkten Zugriff von außen. Bei der dritten Datei erfolgt keine Anzeige, da diese von PHP wegen der Endung interpretiert wird - nicht ideal, aber immer noch besser als die ersten 2. Der Unterschied zwischen dem ersten Server und dem zweiten Server ist, dass hier der Hoster die Dateien von sich aus gesperrt hat (Error 403 - Forbidden), in der Annahme, dass die eigenen Kunden eh nicht wissen, was sie tun und man lieber von Haus aus mehr Sicherheit zwangsweise mitgibt.
Die Datei hat den fikiven Inhalt (zu Demonstrationszwecke):
<?php // dies ist nur ein fiktives Beispiel für eine falsche // Dateiendung!! function kennwort_kontrollieren ( $eingabe, $kontrolle ) { // und hier rein fiktive Zugangsdaten, die so die Welt // eigentlich nicht erfahren sollte, wenn das ein richtiges // Projekt wäre $db_link = mysql_connect ("publichost", "nobody", "somebody"); if ( $eingabe == $kontrolle ) { // ... } } ?>
Denn Dateien mit der Endung .inc oder der Endung .txt (usw.) können bei Kenntnis vom Namen einfach im Browser aufgerufen werden. So bekommt der Nutzer direkt den Inhalt angezeigt und kann sich über die gewonnenen Informationen u.U. schnell einen Zugang schaffen.
Besser ist, wenn zusätzlich diese Dateien in nicht öffentlichen Verzeichnisse geschoben werden. Dazu mehr im folgenden Kapitel.
Video-Tutorial:
über 200 Videos,
Gesamtspielzeit über 23 Stunden
Jetzt
Video-Kurs PHP-Tutorial auf DVD bestellen