Durch die bisherigen Webseiten konnten wir keine Interaktion mit einem Benutzer erzeugen. Für jede Änderung
des Inhalts mussten wir die Website anpassen. Viele moderne Websites funktionieren jedoch nicht so. Benutzer
("Surfer") sollen den Inhalt einer Website mitgestalten können. Der Eintrag in einem Gästebuch oder ein
Post auf Instagram erstellen sollen durch den Benutzer und nicht nur den Ersteller möglich sein. Damit dies
funktioniert, müssen wir eine Programmiersprache einsetzen. Wir lernen in diesem Teil die Grundlagen der
Webprogrammierung mit der Programmiersprache PHP.
Eine PHP-Datei besitzt die
Dateinamen-Erweiterung .php
und kann
PHP-Code beinhalten. Nutzt man
PHP als Templatesprache (so
wie in diesen Unterlagen), dann besteht eine PHP-Datei grösstenteils aus
HTML-Code.
Durch den Einsatz der PHP-Datei
hat
man
nun jedoch die Möglichkeit, in den
HTML-Code PHP-Abschnitte einzufügen.
Diese PHP-Abschnitte werden
durch
den PHP-Interpreter
verarbeitet. Den HTML-Code ausserhalb von den PHP-Abschnitten
verändert der PHP-Interpreter nicht. Er gibt den HTML-Code unverändert an den Webserver zurück.
Ein PHP-Abschnitt beginnt immer
mit dem öffnenden PHP-Tag
<?php
und endet mit dem schliessenden PHP-Tag ?>
. Es
ist wichtig, dass hinter <?php
ein Leerraum steht
(Leerzeichen, Tabulator
oder Zeilenumbruch), andernfalls wird das öffnende PHP-Tag nicht erkannt. Durch
die PHP-Tags kann der PHP-Interpreter
HTML-Code von PHP-Code
unterscheiden. Nur der Code innerhalb von PHP-Tags wird durch den PHP-Interpreter verarbeitet.
Beispiel für eine PHP-Datei:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>PHP-Demo</title>
</head>
<body>
<h1>Dies ist ein Test.</h1>
<p>
Diese Seite wurde abgerufen am:
<?php
$zeitpunkt = date("d.m.Y H:i:s");
echo $zeitpunkt;
?>
</p>
</body>
</html>
Wenn der Browser vom Webserver eine Datei anfordert, muss der Webserver
entscheiden, ob der PHP-Interpreter
eingesetzt werden muss. Typischerweise
wird dies aufgrund der Dateinamen-Erweiterung entschieden.
-
Fall A (ohne PHP-Interpreter):
Beinhaltet der Browser-Request die Anfrage nach einer HTML-Datei, dann wird die HTML-Datei
von der Festplatte geladen und der Inhalt direkt und ohne PHP-Interpreter an den Client in einer Response
geschickt. Der Inhalt der HTML-Datei wird kopiert und
unverändert zurückgeschickt.
-
Fall B (mit PHP-Interpreter):
Falls der Request eine Anfrage nach einer PHP-Datei
beinhaltet, dann wird auf der
Festplatte die entsprechende PHP-Datei gesucht.
Anschliessend wird der
Inhalt der PHP-Datei zur
Verarbeitung an den PHP-Interpreter
geschickt. Dieser verarbeitet den Inhalt und leitet das Ergebnis an den
Webserver zurück. Das Ergebnis des PHP-Interpreters
ist
HTML-Code. Der Webserver nimmt das Resultat und
beantwortet den Request mit einer Response und verpackt darin den HTML-Code.
Der
PHP-Interpreter bearbeitet
nur PHP-Abschnitte.
HTML-Code wird 1:1 in das
Ergebnis des
PHP-Interpreters kopiert.
Besitzt ein
PHP-Abschnitt einen
echo
-Befehl, dann wird die Ausgabe
ebenfalls ins Ergebnis aufgenommen. Alle
PHP-Befehle werden
nicht
ins Ergebnis aufgenommen.
Es wird der Code auf der linken Seite durch den PHP-Interpreter verarbeitet.
Das Resultat ist "nur" noch HTML
und auf der rechten Seite zu sehen (bei einem "echten" PHP-Code
wird der Zeitpunkt natürlich angepasst).
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>PHP Demo</title>
</head>
<body>
<h1>Dies ist ein Test.</h1>
<p>
Diese Seite wurde abgerufen am:
<?php
$zeitpunkt = date("d.m.Y H:i:s");
echo $zeitpunkt;
?>
</p>
</body>
</html>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>PHP Demo</title>
</head>
<body>
<h1>Dies ist ein Test.</h1>
<p>
Diese Seite wurde abgerufen am: 01.09.2022 19:09:13
</p>
</body>
</html>
Eine
Webseite, welche durch den
PHP-Interpreter
erzeugt wird (wenn auch nur
teilweise), bezeichnet man als
dynamische Webseite. Bei einer
statischen Webseite wird lediglich der Inhalt der bereits fertig
existierenden
HTML-Datei an den
Browser übertragen. Nur dynamische
Webseiten erlauben es, dass der Benutzer den Inhalt einer Webseite mitgestalten
kann. Denn durch die Verwendung einer Programmiersprache (wie
PHP) kann man
zum Beispiel Inhalt aus Datenbanken (welche sich ändern können) in die Webseite
einbinden.