» cFos Personal Net Dokumentation, Standard-Scripts

Die cFos PNet Standard Scripte

Die Scripte, welche mit cFos PNet ausgeliefert werden, können Ihnen zeigen wie Sie Serverfunktionen mit Javascript implementieren. Sie sind designed um mit Clientseitigem Browser-scripting wie jQuery genutzt zu werden. Nach Konvention nutzen Serverseitige Scripte die Erweiterung .jss während Clientseitige Scripte die Erweiterung .js nutzen. Das bedeutet, cFos PNet *führt .jss Dateien aus, während es .js Dateien zum Browser sendet.

Sie können Script debugging mit Visual studio oder Visual Web Developer nutzen. Für das Script debugging benötigen Sie eine Visual studio oder Visual Web Developer Version mit Remote Debugging Support, z.B. Visual Studio Professional Edition. Um Script debugging zu aktivieren, setzen Sie den Wert enable_script_debugging=1 in der Sektion [param] in der Datei GLOBAL.INI im Ordner c:\programdata\cFos\cFosPNet.

Wenn Sie keinen Script Debugger installiert haben, setzen Sie den Wert auf 0. Andernfalls könnten Scripte auf manchen Systemen hängen bleiben. Sie können auch die cfospnet.exe mit -enable_script_debugging oder -esd Kommandozeilenbefehl starten um Script debugging für diesen Programmstart zu nutzen.

Script-basierte Benutzeradministration und -authentifizierung

Im Öffentlich Ordner ist ein Unterordner www mit einem Unterordner für jeden Benutzer, der einen Account auf Ihrem cFos PNet Server hat. Das Password des Benutzers oder andere optionale Profildaten werden in einer Hash-Liste mit dem Namen PROFILE.TXT gespeichert. Dies ermöglicht schnellen und gecacheten Zugriff durch cFos PNet integrierte HTTP Authentifizierung. Im öffentlichen Ordner ist außerdem ein Unterordner www mit einem Unterordner für jeden Benutzer. Dieser Ordner kann herunterladbare Dateien des jeweiligen Benutzers enthalten. Das Script file_op.jss erlaubt dem Benutzer Dateien in diesen Ordner hochzuladen.

Die Scripte führen die Authentifizierung gemäß den entsprechenden Einstellungen in der .htaccess durch. Das bedeutet Sie benötigen geeignete Zugangsdaten für den Benutzer, dem das Verzeichnis zugeordnet ist.

Hier ist eine kurze Beschreibung der Scripte. Sie sollten einen Blick auf den Quellcode werfen, um zu sehen, wie diese funktionieren.
makedir2.jss Wenn keine index.htm oder index.html Datei im angeforderten Verzeichnis vorhanden sind, startet cFos PNet dieses Script um eine Verzeichnisliste zu erstellen.
Das Script nutzt FileSystemObject um Informationen über den Inhalt des aktuellen Verzeichnisses zu sammeln. Daraufhin lädt es eine XML Vorlage, parst diese und erzeugt eine HTML Seite aus den Verzeichnisinhalten und den Teilstücken, welche durch die XML-Datei geliefert wurden. Um das Aussehen oder die Funktionalität der Verzeichnisauflistung zu ändern, können Sie die XML Vorlage modifizieren. Die herauskommende HTML Datei enthält Links zur grundlegenden Dateiverwaltung. Als Administrator können Sie sich mittels HTTP Authentifizierung anmelden und Dateien oder Ordner umbenennen, löschen sowie neue Dateien hochladen und neue Ordner erstellen. Dies wird durch jQuery auf Clientseite unterstützt, wodurch im Prinzip auf einfache Art und Weise Ajax Anfragen an cFos PNet gesendet werden. Das Serverseitige Script file_op.jss führt die notwendige HTTP Authentifizierung durch und bearbeitet die Dateioperationen.

file_op.jss Führt Dateioperationen gemäß der obigen Authentifizierung durch. Dateioperationen sind rename, delete, mkdir um einen Ordner zu erstellen und upload. Upload benötigt üblicherweise Authentifizierung. Weil der Browser immer zuerst die gesamte hochzuladende Datei an den Server sendet und dann die Authentifizierung durchführt, würde er die Datei zweimal senden. Um zuerst dem Browser die Authentifizierungsinformationen zu geben, unterstützt das Script file_op.jss einen Korrekturlauf für den Upload. Der Browser fragt den Server mithilfe einer Ajax Anfrage nach der HTTP Authentifizierungsantwort (401) und benutzt diese dann automatisch für den tatsächlichen Upload. Der Upload wird durch eine Funktion in upload.jss bearbeitet, welche cFos PNet's file Objekt nutzt um das Hochladen von Dateien mit frei wählbarer Größe zu erlauben.

user_op.jss Führt grundlegende Funktionen zur Administration der Benutzer aus: erstellen, löschen, Passwort zurücksetzen und auflisten. Zur Authentifizierung wird das Administrator-Konto benötigt.

list_op.jss
Da Hash-Listen eine wichtige Rolle für cFos PNet spielen, stellt list_op.jss grundlegende Auflistungsoperationen zur Verfügung, welche für Ajax Anfragen genutzt werden können. Es wird das selbe Authentifizierungsschema durchgeführt wie oben beschrieben. Das heißt: Abhängig von dem Ort des Scripts wird der Benutzer gewählt, für den die Authentifizierung erforderlich ist. Die Authentifizierung wird gemäß den Direktiven in der jeweiligen .htaccess Datei durchgeführt. list_op.jss bietet folgende Operationen an:

get Ausgabe einer Liste der Werte in der Hash-Liste.
set Setzen einer Liste von Schlüsseln zu einer Liste von Werten.
save Speichern eines Snapshots auf Platte.
erase Löschen einer Liste von Schlüsseln.
clear Löschen aller Schlüssel.
remove Löschen einer Liste aus dem Speicher / von der Platte.
size Ausgabe der Listengröße.
list Auflistung aller Elemente in der Hash-liste.

Der Ajax-Bestandteil in dyndns.htm nutzt diese Operationen um DyDNS Konfigurationsinformationen einzurichten.

dyndns.jss Führt die DynDNS An- oder Abmeldung durch, unter Verwendung der Konfigurationsdaten in der Hash-Liste dyndns.txt im privaten Ordner.
Kann beim Server Start und Stop verwendet werden (siehe Kapitel 1).

get_connections.jss Ermöglicht die aktuelle Anzahl an HTTP Verbindungen anzuzeigen. HTTP wird über TCP verwendet. Um HTTP Anfragen zu beschleunigen versuchen Browser die TCP Verbindungen wiederzuverwenden. Die tatsächliche HTTP Anfrage ist lediglich eine kurze Nachricht und eine Antwort. Danach schließt der Browser die TCP Verbindung nach einigen Sekunden. Daher kann es sein, dass Sie manche Nutzer nur eine kurze zeit sehen. Wenn die Authentifizierung erfolgreich war, wird der Benutzername zusammen mit der IP-Adresse ausgegeben.

stretch.jss Weil es immer eine Last für den Webmaster ist, Bilder auf die Größe anzupassen, welche auf der Webseite verwendet wird, haben wir ein kleines Script implementiert, welches das cFos PNet image object (GDI+) nutzt. Es verwendet den Dateinamen und die Parameter w (width = Breite) und h (height = Höhe) in der URL des Query String. Wenn Ihre Bilder von beliebigen Größen sind, sollten Sie lediglich einen der Parameter nutzen, damit das korrekte Seitenverhältnis des Bildes erhalten bleibt. makedir2.jss benutzt Links zu diesem Script um Thumbnails für die Bilder im aktuellen Ordner anzuzeigen.

utils.jss
Eine Sammlung von Utility-Funktionen um das Serverseitige Scripting zu vereinfachen. Bietet folgende Funktionalitäten:

- umfasst das Webserver Objekt und seine Funktionen.
- erweitert das Javascript String Objekt mit einigen nützlichen Funktionen.
- Auswertung von Script Parametern, entweder aus dem Query String oder aus den Form-Daten welche mit POST genutzt werden.
- Laden, Speichern und Versenden von kleinen Dateien (via E-Mail).
- RFC 1123 Datum wie es in Cookies genutzt wird.
- Cookies.
- eine einfache XML Transformationsfunktion.

Wenn Sie cFos PNet in größeren Projekten verwenden, ist es gegebenenfalls besser Funktionseinheiten in Module zu verpacken, anstatt in ein einfaches enthaltenes Script. cFos PNet bietet hierzu Support der Modulspezifikationen der common.js Initiative.

cFos Personal Net Dokumentation

Powered by cFos Personal Net Webserver
Practice random kindness and senseless acts of beauty