Die Syntax von PHP ist eigentlich recht einfach gestrickt und ebenso einfach zu erlernen. Wichtig ist
lediglich, dem Parser mitzuteilen, wo der PHP-Code oder eine Anweisung beginnt und wo der Code oder eine Anweisung endet. Da
sich PHP- Code problemlos in HTML-Dokumente einbinden lässt, können mehrerer, von HTML unterbrochener Code-Abschnitte
(PHP-Blocks) eingebunden werden. Insofern mehreren Code-Abschnitten innerhalb eines HTML-Dokumentes eingebunden werden,
sollte darauf geachtet werden, dass Anweisungen vor der Beendigung eines Code-Abschnittes ebenfalls beendet werden.
Der Beginn und das Ende des PHP-Codes wird dem Parser durch öffnende und schließende Tags mitgeteilt. Lediglich am Ende einer
Datei kann gegebenenfalls der schließende Tag entfallen. Einzelne Anweisungen innerhalb des Codes müssen mit einem Semikolon
beendet werden. Auch von dieser Regel gibt es eine Ausnahmen. So kann am Ende eines PHP-Blocks das Semikolon entfallen. Um
unbeabsichtigte Fehler zu vermeiden, ist es jedoch ratsam auf diese Möglichkeit weitestgehend zu verzichten.
Innerhalb eines Code-Blocks können Kommentare eingefügt werden. Einzeilige Notizen können dabei mit einer Raute oder
doppelten Slashes auskommentiert werden. Für ein- und mehrzeilige Kommentare gibt es zusätzlich noch eine dritte Variante,
bestehend aus einer Kombination von Slashes mit Sternchen.
Von PHP zu verarbeitende Strings (Zeichenketten) sind in einfachen oder doppelten Anführungszeichen zu setzen. Je
nachdem, ob einfache oder doppelte Anführungszeichen verwendet werden sollen, gibt es einige Unterschiede zwischen der Variante
mit einfachen und der Variante mit doppelten Anführungszeichen zu beachten. Besonders deutlich werden diese Unterschiede sowie
Variablen mit ins Spiel kommen.
Nachfolgend zwei Beispiele von Code-Blöcken mit öffnenden und schließenden PHP-Tags, Kommentaren und Anweisungen zur Ausgabe
von Strings:
Ein Beispiel mit einem String in doppelten Anführungszeichen:
<?php /*-------------------------------------------------- Mehrzeiliger Kommentar: Die erste Zeile enthält den öffnenden PHP-Tag und die letzte Zeile den schließenden Tag. ---------------------------------------------------- */ echo "Ich bin ein String.\n"; ?>
Dass in Programmiersprachen häufig Variablen verwendet werden, denen gewisse Werte zugewiesen werden,
dürfte den meisten Einsteigern bekannt sein. Etwas weniger bekannt ist möglicherweise, dass es sich bei Variablen um
Bezeichner für Speicherplätze im System handelt und dass eben diese Speicherplätze mit den zugewiesenen Werten belegt werden.
Wer nun Variablen und Strings gemischt ausgeben möchte und dabei nicht die Unterschiede von Zeichenketten in einfachen und
doppelten Strings beachtet, könnte einige Überraschungen erleben, wie aus dem zweiten Beispiel ersichtlich wird.
Ein Beispiel mit Strings in einfachen Anführungszeichen und mit Script-Tags:
<script language="php"> /*-------------------------------------------------- In diesem Beispiel werden Script-Tags als öffnende und schließende Tags verwendet. ---------------------------------------------------- */ # Ein einzeiliger Kommentar beginnt mit doppelten Slashes # oder mit einer Raute. $einevar = "bin"; echo "<br>Ich $einevar ein String.\n"; echo '<br>Ich $einevar ein String.\n'; echo "<br>Ich ".$einevar." ein String.\n"; echo '<br>Ich '.$einevar.' ein String.\n'; echo "<br>Ich htmlspecialchars($einevar) ein String.\n"; echo '<br>Ich htmlspecialchars($einevar) ein String.\n'; echo "<br>Ich ".htmlspecialchars($einevar)." ein String.\n"; echo "<br>Ich ",htmlspecialchars($einevar)," ein String.\n"; /*-------------------------------------------------- Ausgabe: Ich bin ein String. Ich $einevar ein String.\n Ich bin ein String. Ich bin ein String.\n Ich htmlspecialchars(bin) ein String. Ich htmlspecialchars($einevar) ein String.\n Ich bin ein String. Ich bin ein String. ---------------------------------------------------- */ </script>
Anmerkungen: Falls nicht auf dem ersten Blick erkennbar, die letzten beiden Varianten
unterscheiden sich nur dahingehend, dass einmal der Punkt-Operator und einmal der Komma-Operator verwendet wurde. Der
Punkt-Operator verbindet im Beispiel die Variable einschließlich der Funktion und der Teilstrings zu einer Zeichenkette, der
Komma-Operator listet hingegen alle Bestandteile durch Komma getrennt hintereinander auf und echo gibt sie nacheinander
entsprechend der Reihenfolge aus.
Da von PHP in HTML eingefügte Strings nicht die Ansicht eines aufgeräumten Quelltextes beeinträchtigen sollten, können mit
\t Tabulatoren gesetzt und mit \n Zeilenvorschübe (Zeilenumbrüche im Quelltext) wie im zweiten Beispiel realisiert
werden.
Neben den in den Beispielen verwendeten öffnenden und schließenden PHP-Tags gibt es noch sogenannte Short-Tags, die je nach
der Konfiguration des Servers verwendet werden können. Die Verwendung kann jedoch nicht empfohlen werden, da Scripts mit
Short-Tags nicht auf entsprechend konfigurierten Servern lauffähig sind.
Wichtiger als die einzelnen Varianten von unterschiedlichen PHP-Tags zu kennen, ist hingegen das Wissen
um die Unterschiede bei der Verwendung von einfachen oder doppelten Anführungszeichen. Da jede ungesicherte Ausgabe von
Variablen, insbesondere wenn diesen Variablen Werte zugewiesen werden, die von einem Formular übergeben oder aus einer
Datenbank abgerufen wurden, ein Risiko in sich birgt, sollte deren Ausgabe nach Möglichkeit immer abgesichert werden. PHP hält
dafür die Funktionen htmlspecialchars() und htmlentities() bereit, die eine Reihe von Sonderzeichen in ihre HTML-Code
Entsprechungen umwandeln.
Am sichersten ist dabei die Verwendung der Funktion htmlentities() einschließlich der Konstanten ENT_QUOTES als zusätzlicher
Parameter. ENT_QUOTES sorgt dafür, dass nicht nur doppelte, sondern auch einfache Anführungszeichen in ihre HTML-Code
Entsprechungen umgewandelt werden.
Beispiel:
<?php echo "Ich ".htmlentities($var, ENT_QUOTES)." ein String.\n"; ?>
Im Beispiel gut ersichtlich, der String wird von doppelten Anführungszeichen begrenzt und die einzelnen Bestandteile wurden mit dem Punkt-Operator verbunden. Diese Schreibweise sollte auch dem Einsteigern die geringsten Probleme bereiten. Mehr zum Thema Syntax und Sicherheit auf der nachfolgenden Seite.
weiterlesen » Sicherheit von PHP-Scripts - Teil II
Einstieg in PHP
Übersicht
Diverse Themen