0251 / 590 837 15
info@a-coding-project.de

CGI – Tutorial, Tipps & Tricks

Perl zählt als die beliebteste Programmiersprache für das Common Gateway Interface ( CGI ) zu den am weitesten verbreiteten serverseitigen Skriptsprachen. Sie besitzt eine große Fülle von Funktionen und Modulen zur Verfügung und stellt somit eine Spieloase für Programmierer dar.

Was ist CGI?

Das CGI (Common Gateway Interface) ist im weitesten Sinne ein standard bzw. eine Norm für eine serverseitige Programmierschnittstelle, die es beispielsweise ebenso wie PHP erlaubt, die vom Server zu übertragenden Inhalte nachhaltig zu verändern. Dies ist möglich, da derartige Scripts stets ausgeführt werden, bevor der Server Daten an der Browser übermittelt. CGI ist also keine Skriptsprache sondern ein Protokoll. CGI-Skripte können im Prinzip in jeder Programmiersprache verfasst werden, welche das Lesen von STDIN und das Schreiben auf STOUT sowie das Lesen von Umgebungsvariablen (Environment variables) ermöglichen.
So stellen dafür geeignete Skriptsprachen wie z.B. das beliebteste und universell einsetzbare Perl mit seiner Vielzahl von Funktionen und Modulen dem Programmierer Möglichkeiten bereit, die nahezu unerschöpflich sind.

Was kann CGI?

Aufgrund der Tatsache, dass ein CGI-basierendes Skript stets auf dem Server und nicht clientseitig ausgeführt wird, ergeben sich Möglichkeiten, welche mit clientseitigen Skriptsprachen nicht realisierbar sind. So ist es beispielsweise möglich, Dateien auf Servern zu verändern bzw. zu erstellen oder auf Datenbanken zuzugreifen. Derartig modifizierbare Inhalte sind Grundlage für die meisten Bedürfnisse moderner Websites mit interaktiven Elementen wie beispielsweise Foren, Gästebücher oder Besucherzählern.

Was kann CGI nicht?

Die oben erläuterten Sachverhalte zeigen gleichzeitig die Schwächen von CGi-basierenden Skriptsprachen wie Perl auf: Sie sind auf das "Zusammenspiel" mit clientseitigen Skriptsprachen angewiesen, ohne die sie Informationen von Servern in keiner vernünftigen Art und Weise für den Clienten aufbereiten könnten. Eben weil sie serverseitig und vor allem vor der Ausgabe an den Browser ausgeführt werden, lassen sich mit CGI keine Objekte im Browserfenster des Besuchers animieren, dynamische Menüs oder andere Sachen, die mit Technologien wie DHTML möglich sind, erzeugen.

Die Entstehung von CGI und Perl

CGI und Perl werden heute fälschlicherweise oftmals im gleichen Atemzug genannt, obwohl dafür zweckmäßig als auch historisch kein unbedingter Zusammenhang besteht.

Die Entstehung von CGI

Nachdem die HTTP-Spezifikation entwickelt wurde, welche es erstmals ermöglichte, Daten zur Anzeige als Website zu bringen, wurde schnell klar, dass dies nicht ausreichend ist, um die schnell steigenden Bedürfnisse zu befriedigen. Man musste die Eigenschaft eines Servers herausbilden, Clienten zu erlauben auch Daten auf ihm speichern und modifizieren zu können. Aus dieser Idee heraus entstand das Common Gateway Interface, das sich bis heute behaupten konnte.

Die Entstehung von Perl

Die Skriptsprache Perl (practical extraction and report language) wurde 1987 von Larry Wall entwickelt. Die Bezeichnung der Sprache deutet bereits auf den ursprünglichen Zweck, nämlich dem Extrahieren von Informationen aus Dateien und der Aufbereitung dieser in einem "Report", hin. Bis dato vorhandene Programmiersprachen wie UNIX konnten aufgrund mangelnder Flexibilität diesen Anforderungen nur in Ansätzen gerecht werden.
Perl erfreute sich sofort nach seiner Veröffentlichung großer Beliebtheit und wurde aufgrund wiederum rasant steigender Anforderungen an die Programmiersprache auch von anderen Programmierern ständig weiterentwickelt. Dieser Prozess hält bis heute an.

Alternativen zu CGI/Perl

Im Laufe der Zeit entstanden natürlich auch Alternativen zu CGI-basierenden Skriptsprachen. Der Fokus bei der (Weiter-)Entwicklung von Perl lag stets auf dem praktischen Nutzen, wodurch eine Vielzahl von Modulen entstand, welche einen schwer erfassbaren Umfang von CGI bedeuteten. Als Alternativen zu Perl wären in diesem Zusammenhang PHP und ASP zu nennen, welche in ihrer Handhabung benutzerfreundlicher - weil einfacher - sind. PHP drängte Perl in den letzten Jahren zwar stark zurück, war bisher aber nicht in der Lage, Perl vollständig zu verdrängen, was nicht zuletzt an der universellen Einsetzbarkeit von Perl liegt.

Vorbereitungen und Grundsätzliches

Es bedarf nicht viel, um das CGI auf dem heimischen Rechner zu installieren und in Perl programmieren zu können. Zudem ist die Anschaffung der benötigten Programme völlig kostenlos. Aber sehen Sie selbst …

Syntax

Die Syntax einer Programmiersprache ist im weiteren Sinne der formale Aufbau des Programmtexts, welcher stets einem bestimmten Schema folgt. Perl weist dabei eine sehr eigenwillige Syntax auf, welche auf dem ersten Blick eher an eine Ansammlung kryptischer Zeichen erinnert. Ein formal ordentlicher Programmierstil ist demnach besonders in Perl eine der wichtigsten Voraussetzungen, um dem Codeverlauf folgen zu können.

Variablen und Konstanten

Perl stellt ein vollständiges Repertoire an Variablentypen zur Verfügung, mithilfe derer sich sehr umfangreiche und variable Datenstrukturen erschaffen lassen. Darüber hinaus kann Perl diese Variablentypen in verschiedenen Kontexten bewerten, was dem Nutzer der Programmiersprache schnell die großen Vorzüge und Stärken von Perl offenbart.

Operatoren

In Perl gibt es Operatoren für alle Ansprüche. Einige können in einer verkürzten Schreibweise notiert werden, um das gesamte Script übersichtlicher erscheinen zu lassen.

Kontrollstrukturen

Die Kontrollstrukturen in Perl wie bedingte Anweisungen und Schleifen ähneln im Großen und Ganzen denen anderer Programmiersprachen. Darüber hinaus existieren aber auch besondere Konstrukte mit einfacher Handhabung.

Programmsteuerung

Durch die Verwendung einiger Sprungbefehle kann man ein Script sehr effektiv flexibilisieren. Welche es wofür gibt, zeigt dieses Kapitel.

Subroutinen

Eine Subroutine in Perl ist ein Unterprogramm, welches selbst Scriptteile enthält und von einer beliebigen Stelle im Script aufgerufen werden kann. Dadurch kann eine mehrfache Notation derselben oder im Wesentlichen identischen Scriptpassage vermieden werden, was das Script um ein Vielfaches übersichtlicher erscheinen lässt.

Wichtige Funktionen für Variablentypen

Für die einzelnen Variablentypen existieren in Perl spezifische Funktionen, welche der Manipulation der Variablen dienen oder Information zu ihnen bereithalten. Mithilfe dieser Funktionen kann man die entsprechenden Variablen sehr effektiv in Szene setzen.

Datenübertragung zwischen HTML und CGI

Eine der wichtigsten Aufgaben von CGI ist die Datenverarbeitung von Nutzereingaben – also das Auswerten von HTML-Formularen. Andersherum müssen die Verarbeiteten Daten natürlich auch wieder an den Benutzer ausgegeben werden. Beides zeigen wir Ihnen hier.

Reguläre Ausdrücke

Eine der größten Stärken von Perl liegt in den Verwendungsmöglichkeiten der so genannten regulären Ausdrücke (regular expressions) begründet. Sie sind im Großen und Ganzen genau definierbare und aufgrund der zahlreichen Modifikationsmöglichkeiten ziemlich vielseitig einsetzbare Suchmuster, mit deren Hilfe man bestimmte flexible Inhalte in beispielsweise Zeichenketten finden und durch andere ersetzen kann.