PHP kann überall in und außerhalb von HTML vorkommen. Mit <?php beginnt PHP und mit ?> endet PHP. PHP kann natürlich auch in externen Scripts geschrieben werden.
Befehle werden in PHP generell mit einem Semikolon abgeschlossen, lediglich wenn der Befehl allein zwischen <?php und ?> steht,
ist dies optional. Sie können auch HTML-Tag's mit Attribute und Attribut-Werte in PHP schreiben wie folgendes Beispiel zeigt:
Einbindung externer Skripts
PHP bietet mehrere Befehle an, um externe Scripts einzubinden:
- include
- require
- include_once
- require_once
Include
<?php
include("connection.inc.php");
?>
Der Befehl include("Dateipfad/Dateiname"); fügt an dieser Stelle den Inhalt der Datei 'connection.inc.php' ein. Dadurch ist es möglich, Quellcode,
der in mehreren Dateien benötigt wird, zentral zu halten, sodass Änderungen einfacher durchzuführen sind.
Require
<?php
require("connection.inc.php");
?>
Ganz analog zu include() funktioniert require(). Es wird aber von PHP etwas anders behandelt.
Ein wesentlicher Unterschied zu include() stellt die Reaktion auf nicht vorhandene Dateien dar. Während include() lediglich ein "Warning" ausgibt und das
PHP-Skript anschließend weiter ausgeführt wird, wird bei require() das laufende PHP-Skript mit einem "Fatal error:" abgebrochen.
include_once, require_once
<?php
include_once("connection.inc.php");
// oder
require_once("connection.inc.php");
?>
Neben den Funktionen include() und require() gibt es auch noch die Funktionen include_once() und require_once().
Der Name zeigt schon, wo der Unterschied liegt: Bei den *_once()-Funktionen wird die Datei nur einmal eingefügt,
unabhängig davon, wie häufig man versucht sie einzufügen.
Der Sinn ist einfach: Bei umfangreichen Webseiten gibt es häufig eine Datei, die die zentralen Funktionen enthält.
Da diese in den Webseiten benötigt werden, fügt man sie immer am Anfang ein. Soweit kein Problem. Sobald aber mehrere zentrale
Funktionsdateien existieren, die sich auch untereinander benötigen, wird es schwierig, weil jede nur einmal eingefügt werden darf,
um z. B. Probleme mit Wiederholungen bei der Definition von Funktionen und Wertzuweisungen von Variablen zu vermeiden.
Tipps im Umgang mit externen Dateien
Normalerweise können Benutzer den Inhalt der Skripts nicht sehen. Jede Datei mit der Endung .php wird vom Webserver an den PHP-Interpreter weitergeleitet
und von diesem verarbeitet. Es ist natürlich ohne Weiteres möglich, jede andere Endung anzugeben. Oft werden Dateien, die mit include() eingeschlossen werden
sollen, mit .inc bezeichnet. Auch diese Endung wird nicht verarbeitet. Das ist für den Ablauf des Skripts egal – die Verarbeitung erfolgt
im Rahmen des "umgebenden" Skripts und damit unter dessen Regie.
Was jedoch nicht egal sein dürfte, ist das damit aufkommende Sicherheitsproblem. Sollte ein Benutzer den Pfad zu den Include-Dateien herausbekommen,
kann er deren Namen in der Adresszeile des Browsers direkt eingeben. Der Webserver wird die Endung nicht kennen und dem Browser die Datei direkt zusenden.
Dieser erkennt ein einfaches Textdokument und stellt es dar. Da in Include-Dateien auch Kennwörter für Datenbanken stehen können, wäre dies äußerst problematisch.
Dieses Problem kann man jedoch recht schnell beseitigen. Benennen Sie sämtliche Include-Dateien in .inc.php um. So haben Sie eine
eindeutige Kennzeichnung und erzwingen im Notfall das Parsen des Codes durch den PHP-Interpreter. Das mag zwar zu einer Fehlermeldung führen,
sollte diese Datei einzeln aufgerufen werden, an den Inhalt gelangt der Benutzer dennoch nicht.