SELFHTML Forums-Auslese CGI und Perl


Forums-Auslese
Sonstiges zu CGI

Diese Seite ist ein Dokument mit Informationstext

 Wie schickt man eine binäre Datei vom CGI-Skript zum Browser?
 Wie läßt man ein CGI-Skript automatisch ausführen?
 "Sichere" CGI-Skripts
 Kann man ein CGI-Skript, das auf einem anderen Server liegt, verwenden?
 Mit HTML-Formularen auf Access-Dastenbanken zugreifen - Lösungsansätze
 Wo finde ich weiterführende Tips zu CGI/Perl?

 

Wie schickt man eine binäre Datei vom CGI-Skript zum Browser?

Basierend auf einem Forums-Beitrag vom 23.10.1998 von:
 Frank Berbuir, frank_berbuir@yahoo.de
 Andreas Bierhals, bierhals@stud.uni-hannover.de

Wollen Sie eine - z.B. dynamisch erzeugte - binäre Datei über ein CGI-Skript downloaden lassen, werden die Daten etwa folgendermaßen übertragen. Wichtig ist, daß die Ausgabe wirklich in binärer Form erfolgt. Dies läßt sich zum Beispiel in Perl durch den Befehl binmode erreichen.

Beispiel:

Content-type: application/x-ooo; name="DATEI.BIN"
Content-disposition: inline; filename="DATEI.BIN"

...              # Daten in binärer Form ausgeben

Bei dieser Methode kann das Problem auftreten, daß der Browser den Dateinamen des Skripts statt DATEI.BIN anbietet. Dieses Problem kann gelöst werden, indem Sie den gewünschten Dateinamen mit /dateiname.ext an den Aufruf des CGI-Skripts anhängen.

Beispiel:

<form action="cgi-bin/script.pl/DATEI.BIN" method="POST">

 

Wie läßt man ein CGI-Skript automatisch ausführen?

Basierend auf einem Forums-Beitrag vom 30.09.1998 von:
 Stefan Münz, muenz@csi.com

Um ein CGI-Skript automatisch ausführen zu lassen, gibt es neben den  Server Side Includes noch eine weitere Möglichkeit. Sie können bei einem Refresh statt einem HTML-Dokument auch ein Skript angeben.

Beispiel:

<!-- Automatischer Aufruf von skript.pl -->
<meta http-eqviv="refresh" content="0; url=skript.pl">

Das kann zum Beispiel nützlich sein, wenn automatisch eine eMail verschickt werden soll, sobald auf eine bestimmte HTML-Seite zugegriffen wird. Um das eigentliche HTML-Dokument anzuzeigen, können Sie dann vom CGI-Skript den gewünschten HTML-Code ausgeben lassen.

 

"Sichere" CGI-Skripts

Basierend auf einem Forums-Beitrag vom 14.09.1998 von:
 Frank Schönmann, fs@tower.de
 Stefan R. Müller, stefan@blinde-kuh.de

Um sicherzustellen, daß Benutzer, die Daten in Formulare eingeben, keine Befehle durch SSI ausführen können, gibt es mehrere Möglichkeiten: Entweder Sie schalten SSI grundsätzlich auf dem Server ab, wenn Sie es nicht an anderer Stelle benötigen, was wohl die sicherste Methode ist, oder man filtert alle eingegebenen HTML-Codes heraus.
Passworte und geheime Daten sollten nie über die CGI-Schnittstelle übertragen werden. Zumindest wenn method="GET" verwendet wird, d.h. alle Parameter in der URL hinter einem ? stehen, finden sich diese Angaben im Klartext in Logfiles wieder.

 

Kann man ein CGI-Skript, das auf einem anderen Server liegt, verwenden?

Basierend auf einem Forums-Beitrag vom 4.09.1998 von:
 Stefan Münz, muenz@csi.com
 Besim Karadeniz, besim@bigfoot.com

Es ist problemlos möglich, ein CGI-Skript aufzurufen, das auf einem anderen Server liegt, sofern der Administrator des Servers die Nutzung erlaubt. Wichtig ist jedoch, dass Sie statt einer relativen URL die vollständige http-Adresse angegeben. Bei Formularen ist darüber hinaus noch zu beachten, ob das Skript method="GET" oder method="POST" erwartet, oder ob beides verwendet werden kann.
Falls Sie einen Server suchen, auf dem Sie Ihre CGI-Skripts ablegen können, finden Sie unter  Wo finde ich kostenlosen Webspace entsprechende Hinweise.

 

Mit HTML-Formularen auf Access-Dastenbanken zugreifen - Lösungsansätze

Basierend auf Forums-Beiträgen vom 23.09.1998 von:
 Stefan Münz, muenz@csi.com
 Frank Möller, frank.moeller@gmd.de
 Markus Danner, maks@i2f.at
und einem Forums-Beitrag vom 24.09.1998 von:
 Stefan Cullmann, kuddelmuddel@gmx.de

Allgemeine Hinweise

Hierfür wird eine WWW-Server-Software benötigt. In dem Fall ist vermutlich ein Web-Server von Microsoft wie der Internet Information Server (IIS) oder der Personal Web Server (PWS) am besten geeignet.

Eine Technologie, die als Schnittstelle zwischen Datenbank und HTML-Input/Output fungiert, muß ebenfalls zur Verfügung stehen. Dies kann ein CGI-Script oder eine vergleichbare Technologie sein (z.B. ASP oder PHP3). Die CGI-Schnittstelle wird von jedem Web-Server unterstützt. Wenn zusätzlich ein Perl-Interpreter installiert ist, können CGI-Scripts in Perl geschrieben werden.

Als "Kanal" zum Austausch von Daten mit der Datenbank wird unter MS Windows üblicherweise die ODBC-Schnittstelle benutzt.

Das CGI-Script muß den Suchinput aus dem HTML-Formular in eine Datenbankabfrage umformulieren. Die übliche Datenbankabfrage dafür ist SQL (Structured Query Language). Das Script sollte also eine ODBC-Verbindung zur Datenbank aufbauen und dann eine SQL-Abfrage senden.

Das CGI-Script soll schließlich die Antwortdaten der Datenbank auslesen und daraus mit Hilfe von print-Befehlen dynamisch HTML-Code an den wartenden Browser senden können.

ASP

Mit ASP-Skripten können Sie auf eine Access Datenbank zugreifen. Diese muß vorher auf dem Webserver als Datei DNS im ODBC-Dialog eingetragen werden. Diese Lösung funktioniert auf jeden Fall mit einem Webserver von Microsoft (IIS oder PWS).

ASP ist eine relativ einfach zu erlernende Scriptsprache: benötigt werden Vorkenntnisse in Html und Visual Basic und als Hilfe am besten das Microsoft Developer Studio.

Um nun auf die Datenbank zugreifen zu können, kann folgendes ASP-Script verwendet werden:

<%
set connection = server.createobject("ADODB.Connection")
connection.open "name"
sql = "SELECT * FROM Tabelle "
sql = sql & "Where dtm_Datum < #1/1/94# "
sql = sql & "ORDER BY Feldnamen;"
set rs = server.createobject("ADODB.Recordset")
rs.cursortype = 3
rs.locktype = 3
rs.open sql, connection %>

Anstatt name setzen Sie die Bezeichnung ein, die Sie der Datenbank im ODBC Dialog gegeben haben. Mit Hilfe der Where-Klausel kann die Suche realisiert werden. Nun können Sie über <% rs.fields("Feldname")%> auf die Daten zugreifen. Mit <%rs.movenext%> kommen Sie zum nächsten Datensatz usw.

In der Access-Hilfe können Sie mehr über die SQL-Syntax erfahren.

Auf  http://www.asp-database.de/ finden Sie ebenfalls Informationen zu den Themen ASP, ODBC und SQL.

Lesen Sie auch die Abschnitte  Was ist ASP und  ASP und ODBC.

PHP 3

PHP 3 ( http://www.php3.de/) ist eine kostenlose Skriptsprache, die auch auf Windows-Rechnern eingesetzt werden kann. über die ODBC-Schnittstelle kann eine Verbindung zu einer ACCESS-Datenbank aufgebaut werden.

Weitere Links zu PHP 3 finden Sie auch im Abschnitt  Weiterführende Informationen zum Thema PHP 3 .

Cold Fusion

Cold Fusion läuft als eigener Server (Cold Fusion Application Server) unter der Voraussetzung, daß ein Webserver installiert ist (z.B. MS IIS). Der Zugriff auf die Access-Datenbank wird über die ODBC-Schnittstelle realisiert, die Programmierung erfolgt durch das sogenannte CFML (Cold Fusion Markup Language). Im Prinzip ist das eine Erweiterung der HTML-Befehle: Sie erstellen ganz normale HTML-Seiten mit Abfragen auf die Datenbank (SQL ähnlich). Die Handhabung und Programmierung ist einfach und es lassen sich sehr leicht auch Lösungen wie z.B. Mailinglists aus einer Datenbank, Guestbooks, usw. realisieren.

Nachteil: Cold Fusion ist kommerziell und nicht ganz billig und läßt sich nur unter Windows 95/98, Windows NT und Sun Solaris einsetzen. Die Homepage des Herstellers ist:  http://www.allaire.com/.

 

Wo finde ich weiterführende Tips zu CGI/Perl?

Dieser Beitrag war Bestandteil der ursprünglichen Fach-FAQ zum Forum.

Neben den  Links in SELFHTML sind folgende Quellen wichtig, um tiefer in CGI und Perl einzusteigen:

 http://hoohoo.ncsa.uiuc.edu/cgi/
Spezifikation, Tutorial, Beispiele, Tips. Die maßgebliche internationale Einstiegsseite für alles rund um die CGI-Schnittstelle.

 http://www.cgi-resources.com/
CGI Resource Index
Links zu Freeware-/Shareware-Scripts, Dokumentation, Büchern usw.

 http://language.perl.com/info/documentation.html
Offizielle Einstiegsseite zu Perl-Dokumentation. Links zu Tutorials, Buchhinweisen, Expertenwissen, Modulen

 http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_main.html
Ausführliche Perl-Dokumentation von Eike Grote

Empfehlenswerte Bücher:

Randal L. Schwartz & Tom Christiansen:
Einführung in Perl
Deutsche Übersetzung von Matthias Kalle Dalheimer
O'Reilly Verlag
320 Seiten, 2.Auflage 1998
DM 59,00
ISBN: 3-89721-105-X

Sriram Srinivasan:
Fortgeschrittene Perl Programmierung
Deutsche Übersetzung von Matthias Kalle Dalheimer
O'Reilly Verlag
436 Seiten, 1.Auflage 1998
DM 79,00
ISBN 3-89721-107-6

Nate Patwardhan & Clay Irving:
Programmieren mit Perl-Modulen
Übersetzung und Beiträge von Eike Grote, Peter Klicman, Marc Lehmann u.a.
O'Reilly Verlag
370 Seiten, 1. Auflage, ca. November 1998
DM 69,00
ISBN 3-89721-108-4

Nate Patwardhan & Clay Irving:
Programmieren mit Perl-Modulen
Übersetzung und Beiträge von Eike Grote, Peter Klicman, Marc Lehmann u.a.
O'Reilly Verlag
370 Seiten, 1. Auflage, ca. November 1998
DM 69,00
ISBN 3-89721-108-4

Thorsten Roßner
Perl - Einsteigerseminaer
bhv Verglag
408 Seiten
DM 19,80
ISBN 3-8287-1029-8

weiter: Grafik - Programme und Tools
zurück: PHP 3
 

SELFHTML Forums-Auslese CGI und Perl

© 1999  das Redaktionsteam