in html python einbinden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
killerforall
User
Beiträge: 2
Registriert: Freitag 25. Mai 2007, 12:46

also es geht darum, ich kann auf einen webserver dateien hinaufladen die dann jeder downloaden kann. dummerweise wird kein index in form einer html seite zur verfügung gestellt, dadurch weiss auch der besucher nicht welche dateien zum download zu verfügung stehen. er braucht die genaue adresse, dann geht es. was ich mir jetzt gedacht habe ist dass ich eine willkommenshtml schreibe die per klick eines buttons ein python programm ausführt welches den ordnern nach dateien durchsucht und automatisch eine html seite mit index erzeugt. somit kommt der besucher dann von der willkommenshtml auf die indexhtml. das problem ist jetzt folgendes, insofern ich mich bis jetzt nicht geirrt habe: python programm habe ich, wie muss meine willkommenshtml aussschauen die das python programm am server ausführt.

vielen dank im voraus und sorry für die umständliche umschreibung aber ich bin was python, cgi etc betrifft absoluter neebie ;-)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

killerforall hat geschrieben:also es geht darum, ich kann auf einen webserver dateien hinaufladen die dann jeder downloaden kann. dummerweise wird kein index in form einer html seite zur verfügung gestellt
Hallo killerforall!

Willkommen im Python-Forum!

Falls der Webserver ein Apache ist, dann könntest du versuchen, ob du die Index-Option des Apachen mit einer ".htaccess"-Datei einschalten kannst.

Das geht so:
Erstelle in dem Ordner, der die Daten enthält, die herunter geladen werden sollen, eine Datei mit dem Dateinamen ".htaccess". Der Punkt vor dem Dateinamen ist wichtig und darf nicht weg gelassen werden.
Schreibe das in die Datei und speichere sie ab:

Code: Alles auswählen

Options Indexes
IndexOptions FancyIndexing
Falls es der Apache ist und er ".htaccess"-Dateien unterstützt, dann solltest du jetzt beim Aufruf im Browser ein Inhaltsverzeichnis sehen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Da es doch recht viele Leute gebrauchen konnten, habe ich so etwas in PHP bereitgestellt.

In Python lässt sich das analog (aber hübscher) nachbauen: Verzeichniseinträge holen (``files = os.listdir()``) und als HTML-Links formatiert ausgeben.

Um es per CGI betreiben zu können, muss zunächst der Content-Type-Header ausgegeben werden, gefolgt von einer Leerzeile (Hinweis: `print` erzeugt implizit einen Zeilenumbruch, über ``sys.stdout.write()`` kann/muss das manuell geschehen).
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Y0Gi hat geschrieben:Da es doch recht viele Leute gebrauchen konnten, habe ich so etwas in PHP bereitgestellt.

In Python lässt sich das analog (aber hübscher) nachbauen: Verzeichniseinträge holen (``files = os.listdir()``) und als HTML-Links formatiert ausgeben.

Um es per CGI betreiben zu können, muss zunächst der Content-Type-Header ausgegeben werden, gefolgt von einer Leerzeile (Hinweis: `print` erzeugt implizit einen Zeilenumbruch, über ``sys.stdout.write()`` kann/muss das manuell geschehen).
Ich würde bei deinem PHP-Skript statt $SCRIPT_FILENAME allerdings $_SERVER['SCRIPT_FILENAME'] verwenden ;)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Richtig. Allerdings wurden $_SERVER und die anderen Superglobals erst wenige Monate vorher eingeführt und so schnell hatte sich das irgendwie nicht rumgesprochen. Entsprechend liegen da noch einige PHP-Scripte rum, die nicht auf dem aktuellen Stand sind, u.a. eben was Superglobals angeht.

Da sieht man übrigens einen der Schwachpunkte von PHP: Zukunftssicherheit. Und Sicherheit ist noch ein anderer ;)

Zwar kann man die $HTTP_*_VARS- und register_globals-Geschütze weiterhin nutzen, aber anstatt sie nur deaktivierbar zu machen, wäre es meines Erachtens langfristig besser gewesen, sie nicht nur als deprecated zu erklären, sondern - spätestens mit PHP 5 - komplett rauszuwerfen. Dann muss Code vielleicht hier und da angepasst werden, aber mehrere Jahre alten PHP-Code produktiv einzusetzen, ist definitiv eine sehr, sehr schlechte Idee.

Aber ich will nicht zu weit abschweifen... ;)
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Hehe, muss gestehen; habe gar nicht gesehen, dass das Skript schon so alt ist
killerforall
User
Beiträge: 2
Registriert: Freitag 25. Mai 2007, 12:46

vielen dank, funktioniert super, ist genau das was ich gesucht habe :-D
Antworten