SELFHTML

Forums-Auslese
Sonstiges zu CGI

Diese Seite ist ein Dokument mit Informationstext

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

nach unten 

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

Basierend auf einem Forums-Beitrag vom 23.10.1998 von:
E-Mail Frank Berbuir, frank_berbuir@yahoo.de
E-Mail 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, dass die Ausgabe wirklich in binärer Form erfolgt. Dies lässt 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, dass 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">

nach obennach unten 

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

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

Um ein CGI-Skript automatisch ausführen zu lassen, gibt es neben den Seite 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.

nach obennach unten 

"Sichere" CGI-Skripts

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

Um sicherzustellen, dass 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.

nach obennach unten 

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

Basierend auf einem Forums-Beitrag vom 4.09.1998 von:
E-Mail Stefan Münz, muenz@csi.com
E-Mail 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 Seite Wo finde ich kostenlosen Webspace entsprechende Hinweise.

nach obennach unten 

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

Basierend auf Forums-Beiträgen vom 23.09.1998 von:
E-Mail Stefan Münz, muenz@csi.com
E-Mail Frank Möller, frank.moeller@gmd.de
E-Mail Markus Danner, maks@i2f.at
und einem Forums-Beitrag vom 24.09.1998 von:
E-Mail 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, muss 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 muss 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 muss 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 deutschsprachige Seite http://www.asp-database.de/ finden Sie ebenfalls Informationen zu den Themen ASP, ODBC und SQL.

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

PHP 3

PHP 3 (englischsprachige Seite 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 Seite Weiterführende Informationen zum Thema PHP 3.

Cold Fusion

Cold Fusion läuft als eigener Server (Cold Fusion Application Server) unter der Voraussetzung, dass 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ässt sich nur unter Windows 95/98, Windows NT und Sun Solaris einsetzen. Die Homepage des Herstellers ist: englischsprachige Seite http://www.allaire.com/.

nach obennach unten 

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

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

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

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

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

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

deutschsprachige Seite 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

nach oben
weiter:Weiter Seite Grafik - Programme und Tools
zurück:Zurück Seite PHP 3
 

© 2000 Seite das Redaktionsteam