Screenshot CGI-Formular

CGI-Scripte in WordPress-Posts einbinden

In dieser Beitragsreihe möchte ich eine Möglichkeit zeigen, CGI-Scripte oder PHP-Seiten in ein WordPress-Blog zu integrieren. Es geht dabei um Scripte, welche einfache Formulareingaben entgegennehmen und auswerten. Diese sollen derart in einem WordPress-Post integriert werden, dass sie nahtlos in der Formatierung des Blogs aufgehen.

Screenshot CGI-FormularZunächst ein Beispiel für ein ganz einfaches CGI-Formular. Es heißt beispiel und ist ein Perl-CGI, welches eine HTML-Seite mit einem Formular ausgibt. Darin kann man einen Text eingeben, der nach dem Absenden wieder von diesem CGI-Script ausgegeben wird.

Der Quelltext des CGI-Scriptes wird im letzten Teil der Serie veröffentlicht.

Um das CGI-Script in WordPress-Beiträgen einzubetten, kann man sich einen Shortcode erstellen. In diesem Beispiel heißt er execcgi. Für Details, wie so etwas gemacht wird, empfehle ich zum Nachlesen die WordPress Shortcode API. Im Prinzip steckt hinter einem Shortcode eine PHP-Funktion, die aufgerufen wird, sobald der entsprechende Shortcode in einem Beitrag gefunden wird.

Was unser Shortcode machen soll, ist im Grunde recht einfach: Er liefert letztlich mit Hilfe der PHP-Funktion file_get_contents() den Quellcode der aufgerufenen URL zurück. Als Argumente nimmt er script="cgi-scriptname" und args="param1=value1&param2=value2" entgegen. Das sind die Informationen, die nötig sind, um das CGI-Script aufzurufen. Da das CGI-Script eine HTML-Seite zurückliefert, geben wir diesen einfach mit Hilfe der PHP-Funktion des Shortcodes aus. Um diesen Shortcode zu implementieren, muss man die functions.php des aktuell genutzten Templates erweitern (am besten, man erstellt sich dazu ein Child Theme, sodass die eigenen Anpassungen bei einer Aktualisierung des Original-Themes nicht verloren gehen):

Damit die Integration des CGI gut funktioniert, muss es einen text/html Header zurückliefern und, wie schon erwähnt, möglichst nur einfaches HTML ohne exotische Formatierungen. Mit dem hier gezeigten Code-Beispiel lassen sich nur CGI-Scripte ausführen, die unter der URL http://test2.steffiland.de/cgi-bin/ erreichbar sind. Das kann man natürlich auch dahingehend abändern, das die komplette URL über den Shortcode als Argument übergeben wird.

Ich habe das Ganze bis jetzt nur im Firefox und IE getestet, aber da funktioniert es :). Das Beispiel findet ihr im nächsten Teil.


Alle Beiträge dieser Serie:

Veröffentlicht von

Steffi

Hi! Ich bin beruflich v.a. im Linux-Umfeld tätig. In meiner Freizeit nähe und koche ich gern - außerdem studiere ich nebenher Mathematik und mache viel Sport. Über all diese Dinge, und was mich sonst noch beschäftigt, schreibe ich hier in meinem Blog.