Webanwendungen – ASP - Dreamweaver“ Inhaltsverzeichnis

Transcrição

Webanwendungen – ASP - Dreamweaver“ Inhaltsverzeichnis
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Inhaltsverzeichnis
1 Client-Server-Konzept und der Internet Information-Server (IIS) .................................................................... 4
1.1 Das Client-Server-Konzept ..................................................................................................................... 4
1.2 Wozu wird ein Webserver benötigt?........................................................................................................ 5
1.2.1 Exkurs: Installation und Verwaltung des Internet-Information-Servers (IIS)........................................ 6
1.2.1.1 Ausgangssituation...................................................................................................................... 7
1.2.1.2 Website-Ordner sichern ............................................................................................................. 7
1.2.1.3 Seite lokal testen........................................................................................................................ 7
1.2.2 Exkurs: Aktivierung / Deaktivierung des SMTP-Dienstes................................................................... 8
2 ASP-Einführung ............................................................................................................................................ 9
2.1 Was ist ASP?.......................................................................................................................................... 9
2.2 ASP - technischen Voraussetzungen ...................................................................................................... 9
2.3 ASP-Objekte........................................................................................................................................... 9
2.3.1 Response-Objekt.............................................................................................................................. 9
2.3.2 Request-Objekt .............................................................................................................................. 10
2.3.2.1 Request.Form .......................................................................................................................... 10
2.3.2.2 Request.QueryString................................................................................................................ 10
2.3.3 Cookies.......................................................................................................................................... 10
2.3.4 Sonstige Objekte ............................................................................................................................ 12
2.4 Server-Variable..................................................................................................................................... 12
2.5 Application und Session........................................................................................................................ 12
2.5.1 HTTP als verbindungsloses Protokoll.............................................................................................. 12
2.5.2 Sessions ........................................................................................................................................ 13
2.5.2.1 Sessiondauer im IIS einstellen ................................................................................................. 14
2.5.2.2 Sessionvariable in Dreamweaver ............................................................................................. 14
2.5.3 Applications.................................................................................................................................... 15
2.5.3.1 Global.asa ............................................................................................................................... 15
2.5.3.2 Applicationvariable in Dreamweaver......................................................................................... 17
2.5.4 Exkurs: HTTP-Error 404 Seite festlegen ......................................................................................... 18
3 Dynamische Webseiten mit Datenbankanbindung ....................................................................................... 19
3.1 Sitedefinitionen ..................................................................................................................................... 19
3.2 ODBC-Setup ........................................................................................................................................ 21
3.2.1 Tipps für ODBC-Verbindungen ....................................................................................................... 21
3.2.2 Tipps für den Datenbankordner (IIS)............................................................................................... 22
3.2.3 Tipps für die Access-Datenbank ..................................................................................................... 23
3.3 Datenbankzugriffe mit Dreamweaver .................................................................................................... 23
3.3.1 Verbindung erstellen....................................................................................................................... 23
3.3.1.1 DSN (Data Source Name)........................................................................................................ 24
3.3.1.2 Benutzerdefinierter Verbindungsstring...................................................................................... 25
3.3.1.3 Ergebnis des Verbindungsaufbaus ........................................................................................... 25
3.3.2 Recordset (Datensatzobjekt, Datensatzgruppe) .............................................................................. 26
3.3.2.1 Alle Datensätze in einer Tabelle anzeigen ................................................................................ 29
3.3.2.1.1 Serververhalten "Bereich wiederholen" ........................................................................... 29
3.3.3 Dynamische Tabellen (inkl. Formatierungen) .................................................................................. 30
3.3.4 (ASP-) Quellcode ........................................................................................................................... 30
3.3.4.1 Ordner "Connections"............................................................................................................... 30
3.3.4.2 ASP-Seiten mit Datenbankanbindung....................................................................................... 31
3.3.5 Varianten für Recordsets ................................................................................................................ 32
3.3.5.1 Recordsets kopieren ................................................................................................................ 34
3.3.5.2 Recordset mit SQL-Anweisung anlegen ................................................................................... 34
3.3.5.2.1 Quellcode bearbeiten – HTML-Hyperlinks ergänzen ....................................................... 34
3.3.6 Formularbasierte Datenbankabfragen............................................................................................. 35
3.3.6.1 Einfache Abfrageformulare....................................................................................................... 35
3.3.6.1.1 Schritt 1 – Abfrageformular entwerfen............................................................................. 35
3.3.6.1.2 Schritt 2 – Suchergebnisseite entwerfen ......................................................................... 36
3.3.6.1.2.1 Serververhalten "Bereich zeigen" ............................................................................. 37
3.3.6.2 Komplexe Abfrageformulare..................................................................................................... 38
3.3.6.2.1 Schritt 1 – Abfrageformular entwerfen............................................................................. 38
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.6.2.2 Schritt 2 – Suchergebnisseite entwerfen ......................................................................... 39
3.3.6.2.3 Variation – variable Sortierung und variable Bedingungsverknüpfung ............................. 40
3.3.7 Symbolleiste "Anwendung" ............................................................................................................. 41
3.3.7.1 Datensatzgruppen-Navigationsleiste ........................................................................................ 41
3.3.7.2 Datensatzgruppen-Navigationsstatus ....................................................................................... 41
3.3.7.3 Master-Detailseitensatz............................................................................................................ 42
3.3.8 Serververhalten.............................................................................................................................. 43
3.3.8.1 Datensatzgruppe (Abfrage) ...................................................................................................... 43
3.3.8.2 Befehl ...................................................................................................................................... 43
3.3.8.3 Bereich wiederholen................................................................................................................. 43
3.3.8.4 Seitenerstellung für Datensatzgruppe (Zu Datensatz verschieben) ........................................... 43
3.3.8.4.1 Zu bestimmtem Datensatz verschieben .......................................................................... 44
3.3.8.5 Bereich zeigen ......................................................................................................................... 44
3.3.8.6 Dynamischer Text .................................................................................................................... 44
3.3.8.7 Zu Detailseite wechseln ........................................................................................................... 45
3.3.8.8 Zu Seite mit ergänzenden Themen wechseln ........................................................................... 46
3.3.8.9 Dynamische Formularelemente................................................................................................ 46
3.3.9 Datenbank administrieren............................................................................................................... 48
3.3.9.1 Neue Datensätze anlegen........................................................................................................ 48
3.3.9.1.1 Serververhalten "Datensatz einfügen"............................................................................. 48
3.3.9.1.1.1 Laufzeitfehler abfangen (ASP-Err-Objekt)................................................................. 49
3.3.9.1.2 Einfügeformular für Datensätze ...................................................................................... 52
3.3.9.2 Datensätze löschen.................................................................................................................. 53
3.3.9.3 Datensätze ändern................................................................................................................... 54
3.3.9.3.1 Serververhalten "Datensatz aktualisieren" ...................................................................... 54
3.3.9.3.2 Aktualisierungsformular für Datensätze........................................................................... 54
3.3.9.4 Benutzerauthentifizierung......................................................................................................... 55
3.3.9.4.1 User-Login ..................................................................................................................... 55
3.3.9.4.2 Zugriffsrechte auf bestimmte Seiten beschränken........................................................... 56
3.3.9.4.3 User-Logout ................................................................................................................... 57
3.3.9.4.4 User-Neuanlage ............................................................................................................. 57
4 Tools & Tricks ............................................................................................................................................. 58
4.1 Dynamische Fotos ................................................................................................................................ 58
4.2 Dynamische Dokument-Links................................................................................................................ 58
4.3 Beziehungen (1:N, N:M)........................................................................................................................ 59
4.4 E-Mails automatisch versenden ............................................................................................................ 60
4.4.1 CDONT-Mail................................................................................................................................... 60
4.4.2 ASP SmartMail............................................................................................................................... 60
5 Contribute ................................................................................................................................................... 64
5.1 Installation ............................................................................................................................................ 64
5.2 Contribute FAQs – Was geht, was geht nicht? ...................................................................................... 64
5.3 Sitedefinition......................................................................................................................................... 65
5.3.1 Vorarbeiten .................................................................................................................................... 65
5.3.2 Sitedefinition in Dreamweaver ........................................................................................................ 65
5.3.2.1 Contribute Website mit Dreamweaver verwalten....................................................................... 68
5.3.2.1.1 Einstellungen für die gesamte Site.................................................................................. 68
5.3.2.1.2 Berechtigungsgruppen.................................................................................................... 68
5.3.3 Sichern der Einstellungen............................................................................................................... 72
5.3.3.1 Registry-Eingtrag händisch sichern .......................................................................................... 72
5.3.3.2 DW-Exporter verwenden .......................................................................................................... 73
5.3.4 Verbindungsschlüssel senden ........................................................................................................ 74
5.4 Contribute verwenden........................................................................................................................... 76
5.4.1 Voreinstellungen............................................................................................................................. 76
5.4.2 Verbindung zum Server herstellen.................................................................................................. 77
5.4.3 Seiten mit Contribute bearbeiten und veröffentlichen ...................................................................... 78
5.4.3.1 Word- und Excel-Dokumente ................................................................................................... 79
5.4.3.2 Gesperrte Dateien bearbeiten .................................................................................................. 79
5.4.3.3 Gelöschte Seite wiederherstellen ............................................................................................. 80
6 Exkurs: Ausgewählte Dreamweaver Extensions .......................................................................................... 82
6.1 Browser ................................................................................................................................................ 82
6.1.1 Browserfenster zentriert auf Bildschirm öffnen / schließen .............................................................. 82
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
6.1.2 Browserfenster zeitgesteuert schließen .......................................................................................... 82
6.1.3 Browserfenster animieren............................................................................................................... 82
6.1.4 Bilder in Browserfenster öffnen....................................................................................................... 82
6.1.5 Seite zu Favoriten hinzufügen......................................................................................................... 82
6.1.6 Text in der Statusleiste ................................................................................................................... 83
6.1.7 Scrollende Statusleiste ................................................................................................................... 83
6.1.8 Browser Navigation ........................................................................................................................ 83
6.1.9 No Way Back ................................................................................................................................. 83
6.1.10 Dokument ausdrucken.................................................................................................................. 83
6.2 Formulare............................................................................................................................................. 83
6.2.1 Form Maker.................................................................................................................................... 83
6.2.2 Länderliste (weltweit) erstellen........................................................................................................ 83
6.2.3 Datum aus Kalender einfügen......................................................................................................... 84
6.2.4 Credit Card Form Builder................................................................................................................ 84
6.2.5 Kreditkarten überprüfen.................................................................................................................. 84
6.2.6 PopUp Confirm Message................................................................................................................ 84
6.2.7 Formular sicher senden .................................................................................................................. 84
6.3 E-Mail................................................................................................................................................... 84
6.3.1 Super E-Mail .................................................................................................................................. 84
6.3.2 Uni Mailer (Formular als E-Mail versenden) .................................................................................... 84
6.3.3 Visual CDONTS E-Mail................................................................................................................... 85
6.4 Sonstiges.............................................................................................................................................. 85
6.4.1 Meta-Tag Generator ....................................................................................................................... 85
6.4.2 Zentrierte Tabelle ........................................................................................................................... 85
6.4.3 Dummy Link Nowhere .................................................................................................................... 86
6.4.4 Hoch- und Tiefstellen von Text, mathematische Sonderzeichen...................................................... 86
6.4.5 Banner Image Builder..................................................................................................................... 86
6.4.6 Links überblenden .......................................................................................................................... 87
6.4.7 Inhaltsverzeichis auf Basis der Überschriften / Top of Page / Link to Anchor ................................... 87
6.4.8 Visit Counter................................................................................................................................... 87
7 Didaktische Tipps........................................................................................................................................ 88
8 Linksammlung............................................................................................................................................. 88
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
1 Client-Server-Konzept und der Internet Information-Server (IIS)
1.1 Das Client-Server-Konzept
Beim Client (PC des "Surfers") wird die http-Adresse einer Internetseite (hier: default.asp) im Browser
eingegeben. Daraufhin wird eine Anfrage (HTTP-Request) an den Server, der unter dieser http-Adresse
erreichbar ist, gesendet.
Der Webserver (entweder der eigene PC – wenn Sie die Seiten lokal entwickeln - oder der Server Ihres
Providers – wenn Sie die Seiten bereits zu Ihrem Provider upgeloadet haben) findet die Seite und
durchsucht sie nach ASP-Anweisungen.
Der Server erkennt an der Endung .ASP, dass er die ASP-Anweisungen in der Seite ausführen muss.
(Bei dem in der Grafik dargestellten Beispiel werden von einer ASP-Seite Informationen aus einer Datenbank –
unter Verwendung einer ODBC-Verbindung - ausgelesen)
Danach entfernt der Server alle ASP-Anweisungen aus der Seite, sodass "reiner" HTML-Code übrig bleibt.
Diese HTML-Seite (allerdings noch immer mit der Endung .ASP) sendet der Server dann an den Browser
(HTTP-Response).
(Bei dem in der Grafik dargestellten Beispiel werden z.B. die vom Benutzer gewünschten Artikeldaten an den
Client zurückgesendet).
Dieses Vorgehen hat viele Vorteile:
•
•
Der Code wird auf dem Server ausgeführt, sodass Sie auch auf Dateien und Datenbanken des
Servers zugreifen können.
Der Code wird vom Server vor dem Senden an den Browser herausgefiltert, sodass die von Ihnen
entwickelten Programme nicht einfach von jemand anderem kopiert werden können. Versuchen Sie
doch einmal, eine ASP-Seite zu laden, und wählen Sie dann im Internet Explorer "Ansicht / Quelltext
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
•
anzeigen". Sie werden sehen, dass die Programmteile verschwunden sind und nur mehr HTMLTags zu sehen sind...
Egal, ob Sie VBScript oder JavaScript für Ihre Server-seitigen ASP-Scripts verwenden: die Scripts
funktionieren mit jedem Browser (Internet Explorer, Netscape), da sie ja nicht vom Browser
sondern vom Server ausgeführt werden.
1.2 Wozu wird ein Webserver benötigt?
Webserver ist nur für die Entwicklung von serverseitigen Skripten erforderlich. Clientseitige Scripte (z.B.
JavaScripts für das Einblenden von Werbebannern, Menüs, Mauseffekten etc.) erfordern nur einen Browser
aber keinen Webserver, um richtig zu funktionieren.
Clientseitige Scripts werden vom Browser interpretiert, d.h. ausgeführt à ob diese Skripte richtig funktionieren
hängt daher vom verwendeten Browser (Internet Explorer, Netscape, Opera etc.) ab.
Ein Webserver soll das Client-Server-Konzept auf dem lokalen Rechner simulieren, d.h. ein und derselbe
Rechner verhält sich a) als Client und b) gleichzeitig als Server (diese Rolle übernimmt der Webserver, d.h.
der IIS – Internet Information Server unter Windows 2000).
Befinden sich in einer Seite (mit der Endung .ASP) also ASP-Anweisungen, um z.B. bestimmte Artikeldaten
aus einer Datenbank (auf den Server) auszulesen, werden diese ASP-Anweisungen vom Server direkt
ausgeführt, noch bevor die Seite (im HTML-Format) an den Client geschickt wird.
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
1.2.1 Exkurs: Installation und Verwaltung des Internet-Information-Servers (IIS)
Start / Einstellungen / Systemsteuerung / Software ...
1) Windows Komponenten hinzufügen
2) IIS (Internet Information Server) heißt hier Internet-Informationsdienste
3) ggf. Frontpage Servererweiterungen deaktivieren (falls nicht mit Frontpage gearbeitet wird)
4) Internet-Informationsdienste Snap-In ist das Verwaltungstool des IIS
à nach Installation über Start / Einstellungen / Systemsteuerung / Verwaltung / Internet-Dienstemanager
erreichbar
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
1) Start / Einstellungen / Systemsteuerung / Verwaltung / Internet-Dienstemanager
2) W2000 Server: mehrere Webs möglich (Webs können einzeln gestartet / beendet werden
à bei W2000 Workstation: mehrere Webs als Unterordner (Virtuelles Verzeichnis) des Standardwebs
(entspricht C:\Inetpub\wwwroot) anlegen
3) SMTP-Server beenden (kann u.U. von "Spammern" missbraucht werden!)
1.2.1.1 Ausgangssituation
Homepage MeineSeite.asp soll in Ordner MeineHomepage gespeichert werden.
Ordner in C:\Inetpub\wwwroot\MeineHomepage erstellen. In diesem Ordner wird während des Unterrichts
lokal gearbeitet.
1.2.1.2 Website-Ordner sichern
Am Ende der Stunde ist der gesamte Inhalt von C:\Inetpub\wwwroot\MeineHomepage auf Z: zu sichern.
Vorschlag: Ordner Z:\_Webs\MeineHomepage verwenden.
Am Beginn der nächsten Stunde - v.a. wenn auf einem anderen PC gearbeitet wird – ist
Z:\_Webs\MeineHomepage wieder auf C:\Inetpub\wwwroot\MeineHomepage zu kopieren.
1.2.1.3 Seite lokal testen
Internet-Explorer starten
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Mögliche Adressen der Seite:
http://localhost/MeineHomepage/MeineHomepage/MeineSeite.asp
http://127.0.0.1/MeineHomepage/MeineSeite.asp (127.0.0.1 entspricht localhost = lokaler Webserver)
Erklärung:
à d.h.: http://localhost/ bzw. http://127.0.0.1/ verweist (bei einer IIS-Standardinstallation) auf
C:\Inetpub\wwwroot\
à d.h.: http://localhost/MeineHomepage/MeineSeite.asp bzw.
http://127.0.0.1/MeineHomepage/MeineSeite.asp verweist auf
C:\Inetpub\wwwroot\MeineHomepage\MeineSeite.asp
1.2.2 Exkurs: Aktivierung / Deaktivierung des SMTP-Dienstes
1) Start / Einstellungen / Systemsteuerung / Verwaltung / Dienste
2) SMTP-Dienst (Simple Mail-Transportprotokoll) rechte Maus / Eigenschaften à Starttyp: deaktiviert
àkann von "Spammern" nicht mehr missbraucht werden!
à ggf. beim Testen der ASP-Mail-Funktionalität kurzfristig (lokal) aktivieren
à für Verwendung der ASP-Mail-Funktionalität bei Provider anfragen, ob SMTP unterstützt wird
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Alternative:
à für ASP-Mail-Funktionalität Tools wie z.B. ASP-SmartMail (DLLs) verwenden
à auch hier für Verwendung der ASP-Mail-Funktionalität bei Provider anfragen, ob die DLLs installiert sind
bzw. installiert werden
2 ASP-Einführung
2.1 Was ist ASP?
ASP steht für Active Server Page(s). ASP erlaubt die Ausführung von Skripten, also Programmierbefehlen,
auf der Serverseite. Als Skriptsprache können Sie dabei entweder VBScript oder JavaScript verwenden.
Sie schreiben dabei die ASP-Anweisungen einfach in die HTML-Seite hinein. Die HTML-Tags und Ihr
Programmcode befinden sich nebeneinander. ASP-Anweisungen werden dabei immer durch
<% ...... %>
von den HTML-Tags getrennt.
ASP-Seiten haben die Endung .ASP (anstelle von .HTM bzw. .HTML).
Um mit ASP arbeiten zu können, sind im Vorfeld also nur HTML-Kenntnisse nötig, und das auch nur in dem
Umfang, wie es die gewünschten Webseiten erfordern. Wer anspruchsvolle Seiten mit CSS (Cascading
Style Sheets), DHTML (Dynamic HTML) und JavaScript erstellen will, sollte aber auch diese Elemente
beherrschen.
Siehe auch ASP Kurzübersicht
2.2 ASP - technischen Voraussetzungen
Wenn Sie in Ihrem Web ASP-Seiten entwickeln, achten Sie bitte darauf, dass der Ordner, in dem sich diese
Seiten befinden, die Ausführung von Skripten erlaubt!
ASP-Seiten funktionieren nur dann richtig in der Browser-Vorschau, wenn Sie über das HTTP-Protokoll
geladen werden, d.h. Sie müssen für die Entwicklung Ihres Webs einen Webserver auf Ihrem Rechner
installiert haben.
ASP ist Bestandteil des IIS (Internet Information Servers) ab Version 4.0, der mit Windows NT Server 4.0
(IIS 4) bzw. Windows 2000 (IIS 5) ausgeliefert wird.
Um alle Möglichkeiten von VBScript 5.0 auf der Serverseite nutzen zu können, ist allerdings der Umstieg
auf Windows 2000 (IIS 5) unbedingt anzuraten.
2.3 ASP-Objekte
à alle hier besprochenen Objekte sind in ASP bereits integriert, d.h. es muss nichts extra installiert werden
2.3.1 Response-Objekt
à jeder Datenaustausch zwischen Webserver und Browser besteht aus den Prozessen Request
(Anforderung) und Response (Antwort)
à immer wenn Daten übertragen werden, wird auf diese Objekte (deren Methoden und Eigenschaften)
zugegriffen
à beide Objekte gehören zusammen, die dabei ablaufenden Prozesse bauen oft aufeinander auf
Response-Objekt
à sendet Informationen zum Browser (v.a. zur direkten Ausgaben von HTML und Texten)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Beispiel (Hallo Welt mit Response.Write und direkter ASP-Ausgabe)
2.3.2 Request-Objekt
à fordert Informationen vom Browser an bzw. enthält die Informationen, die von einem HTML-Formular
übertragen wurden
2.3.2.1 Request.Form
à Formulare, deren Daten mit der Methode "POST" übertragen werden, können auf der "Action"-Seite mit
Request.Form auf die Formulardaten zugreifen
à in Entwicklungsansicht z.B. als {Form.Alter} angezeigt
à entspricht in Quellcode <%= Request.Form("Alter") %>
Beispiel (Formulardaten mit POST übertragen und mit Request.Form verarbeitet)
2.3.2.2 Request.QueryString
à Formulare, deren Daten mit der Methode "GET" übertragen werden, können auf der "Action"-Seite mit
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Request.QueryString auf die Formulardaten zugreifen
à Query-String wird an URL in folgendem Format angehängt (z.B.)
(http://) ...Formular_Verarbeiten_GET.asp?Name=Buschka&Alter=C&Geschlecht=M
&[email protected]&Absenden=Abschicken
Achtung
à erster Wert mit "?" eingeleitet
à die restlichen Werte mit "&"
Problem
à bei Request.QueryString werden nur ca. 2000 Zeichen akzeptiert
à für längere Formulardaten daher Methode POST mit Request.Form verwenden!
à in Entwicklungsansicht z.B. als {QueryString.Alter} angezeigt
à entspricht in Quellcode <%= Request.QueryString("Alter") %>
Beispiel (Formulardaten mit GET übertragen und mit Request.QueryString verarbeitet)
à Request.QueryString kann aber auch nur Informationen auswerten, die bei URL mit angegeben werden
à z.B. Artikel- oder Kundendaten direkt im Link angeben
Beispiel (Links für Buchbestellungen mit Request.QueryString)
2.3.3 Cookies
à Cookies sind kleine Textdateien, die am PC des Users gespeichert werden
à Hauptziel: User beim nächsten Besuch der Seite (bei der nächsten Session) identifizieren können
à Speicherort: C:\Dokumente und Einstellungen\%Username%\Cookies
à Inhalt (z.B.: Cookie-Datei administrator@seminar2[1].txt)
MGBCookie TextSize=3&BackgroundColor=White&TextColor=Black
&Email=&LastName=Buschka&FirstName=Gerhard
seminar2/102412167372830785582361290321629571854*
wobei...
MGBCookie à Cookiename
administrator à Username
seminar2 à Webname
à Cookies werden zwischen Server und Browser durch HTTP-Header (vor dem eigenlichen HTML-Teil)
übertragen
à ASP-Seite, die Cookies erzeugt (schreibt) muss daher als erste Zeile folgenden Eintrag haben:
<% Response.Buffer = True %>
à Cookies schreiben:
Response.Cookies("CookieName") = "Inhalt"
à bzw. als "Collection"
Response.Cookies("MGBCookie")("FirstName") = "Inhalt"
Response.Cookies("MGBCookie")("LastName") = "Inhalt"
à Cookies lesen: Request.Cookies("CookieName")
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Cookie Verfalldatum festlegen: Response.Cookies("CookieName").Expires = "1.1.2020"
à Cookies werden nur über die Session hinaus gesichert, wenn sie ein Verfallsdatum haben!
Beispiel (Alle Cookies des aktuellen Webs auslesen)
Beispiel (Formular mit Benutzerdaten / Seite nach Benutzerwünschen gestaltet)
2.3.4 Sonstige Objekte
Server-Objekt
à steuert die ASP-Umgebung
Err-Objekt
à steuert Laufzeitfehler
Session
à speichert Informationen über die aktuelle Sitzung
Application
à verteilt Informationen zwischen den verschiedenen Nutzern einer Sitzung
2.4 Server-Variable
à wenn Browser Anforderungen an Webserver sendet, schickt er eine Reihe von "Headern" (Kopfzeilen mit
Informationen) mit
à Header werden vom Server (von ASP) im Objekt "Request.ServerVariables" gespeichert
à diese Werte können ausgelesen / ausgewertet werden
HTTP_REFERER
à URL der Seite, von der aus die aktuelle Seite aufgerufen wurde
HTTP_USER_AGENT
à vom User verwendeter Browser
REMOTE_ADDR
à IP-Adresse, von der aus die Verbindung zur aktuellen Seite hergestellt wurde
QUERY_STRING
à mit URL übergebene Zeichenkette
SCRIPT_NAME
à Name der aktuellen ASP-Seite (Achtung: virtuelle (relative) Pfadangabe)
SERVER_NAME
à Name des Webservers oder dessen IP-Adresse
PATH_TRANSLATED
à physischer Pfad der ASP-Seite auf der Festplatte des Webservers
Beispiel (Server-Variable Übersicht)
Beispiele (HTTP_REFERER à Aufruf ok / Aufruf verweigert)
2.5 Application und Session
2.5.1 HTTP als verbindungsloses Protokoll
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à HTTP ist ein sogenanntes "verbindungsloses" (oder statusloses) Protokoll, d.h. es besteht keine ständige
Verbindung zwischen Client und Server
à alle Interaktionen zwischen Client (Browser) und Server beruhen auf einem einfachen "Frage-Antwort-Spiel"
(Request und Response)
à Browser fordert eine Seite an – Server liefert die Seite und "vergisst" sofort wieder, wer diese Seite
angefordert hat
Problem
à wie sollen z.B. Benutzeranfragen bei einem Webshop – getrennt nach den verschiedenen Usern – verwaltet
werden, wenn der Server jedesmal vergisst, welcher User welche Anfrage geschickt hat?
Lösung
à Sessions
2.5.2 Sessions
à eine Session (Sitzung) beginnt mit dem Aufruf einer ASP-Seite auf dem Webserver
à jeder User eröffnet mit seiner Browser-Sitzung eine eigene Session
à wenn ein User auf seinem PC zweimal den Browser startet und dieselbe Adresse eingibt eröffnet dieser eine
User zwei Sessions
à wenn der User die Seite verlässt (bzw. seinen Browser schließt oder den PC herunterfährt) wird seine
Session beendet
à erst wenn der Server innerhalb dieser Zeit keine User-Aktion mehr registriert ist die Session für ihn beendet
à Sessions ermöglichen es ASP, die verschiedenen Aufrufe (die verschiedenen User) zu unterscheiden
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
2.5.2.1 Sessiondauer im IIS einstellen
1) Web auswählen / rechte Maus / Eigenschaften
2) Basisverzeichnis auswählen
3) Konfiguration der Anwendung
4) Sitzungstimeout (Sessiondauer) einstellen
à standardmäßig dauert eine Session beim IIS (Internet Information Server) 20 Minuten
2.5.2.2 Sessionvariable in Dreamweaver
à Variableninhalte von Sessionvariablen gelten für die gesamte Sitzung eines Users
à Variableninhalte können auf jeder Seite der Website verwendet (angesprochen / ausgegeben / geändert)
werden
à z.B. Username, Passwort, Einkaufssumme eines Surfers während seiner Sitzung verwaltet
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Bindungen / Sitzungsvariable
à Name: Variablenname eingeben
Variable mit Wert versorgen (Beispiel)
<% Session("Autor") = "Mag. Gerhard Buschka" %>
Variablenwert in HTML-Dokument ausgeben
à Sessionvariable aus Fenster Anwendung / Register Bindungen auf Dokument ziehen (Entwurfsansicht)
à oder direkt in Quellcode Variableninhalt ausgeben:
<%= Session("Autor") %>
Beispiel (Sessionvariable, Userdaten während einer Shoppingtour)
2.5.3 Applications
à Application = die (Web-)Anwendung
à definiert als "...Ordner, der als Basisverzeichnis des Webs definiert wurde - inkl. aller Unterordner und aller
darin enthaltener Dateien..."
à standardmäßig ist das Basisverzeichis das Root-Directory des jeweiligen Webs
à auch jedes virtuelle Verzeichnis kann eine eigene Anwendung aufnehmen
2.5.3.1 Global.asa
à Datei mit Start- und Endeprozeduren für Application und Session
à je Anwendung (im Basisverzeichnis bzw. in jedem virtuellen Verzeichnis) ist nur eine global.asa möglich
Inhalt (Beispiel)
<script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("AnzahlUser") = 0
'Variable gilt für gesamte Applikation
'der allererste User loggt sich in unsere Website ein
End Sub
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Sub Application_OnEnd
End Sub
Sub Session_OnStart
'ein neuer User kommt dazu....
Application.Lock
Application("AnzahlUser") = Application("AnzahlUser") + 1
'...und ist (heute) der sovielte User
Application.UnLock
End Sub
Sub Session_OnEnd
'ein User verlässt unser Web....
Application.Lock
Application("AnzahlUser") = Application("AnzahlUser") - 1
'...und ist der sovielte User
End Sub
</script>
à hier existiert global.asa im Stammverzeichnis (für die "Standardanwendung")
à hier z.B. virtuelles Verzeichnis "NeueAnwendung" angelegt
à enthält ebenfalls eine global.asa (die nur für diese Anwendung im virtuellen Verzeichnis gilt)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
2.5.3.2 Applicationvariable in Dreamweaver
à Variableninhalte von Applicationvariablen gelten für alle User (in allen Sitzungen)
à z.B. Anzahl der User, die online sind
à Bindungen / Anwendungsvariable
à Name: Variablenname eingeben
Variable mit Wert versorgen (Beispiel)
Application("AnzahlUser") = 0
Variablenwert in HTML-Dokument ausgeben
à Anwendungsvariable aus Fenster Anwendung / Register Bindungen auf Dokument ziehen (Entwurfsansicht)
à oder direkt in Quellcode Variableninhalt ausgeben:
<%= Application("AnzahlUser") %>
Beispiel (Standardanwendung, global.asa des Basisverzeichnisses verwendet)
Beispiel (NeueAnwendung (virtuelles Verzeichnis), global.asa aus virtuellem Verzeichnis verwendet)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
2.5.4 Exkurs: HTTP-Error 404 Seite festlegen
à hier Datei eingeben (falls direkt am Webserver gearbeitet wird)
à bzw. URL angeben (falls nicht am Server gearbeitet wird)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3 Dynamische Webseiten mit Datenbankanbindung
3.1 Sitedefinitionen
Site-Name: frei wählbar
Lokaler Stammordner: Ordner auf lokalem PC
HTTP-Adresse: nur notwendig, wenn andere Sites auf die aktuelle Site verweisen
Cache: sollte immer aktiviert werden!
Zugriff:
à FTP: meistens User und Passwort erforderlich (Daten von Provider erfragen!)
à Lokal(Netzwerk):
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
àbei Arbeit auf Workstation à Ordner, auf dem IIS läuft
à bei Arbeit im Schulnetz à UNC-Adresse des Testweb-Servers
(z.B.: \\2knwn02\Testweb\Seminar_Webanwendungen_Teil_2)
à Ein-/Auschecken: für Arbeit in Projektgruppen (vgl. Seminar Teil 1)
URL-Präfix: damit die Browservorschau / Live-Data-Ansicht funktioniert
Servermodell wählen
Tipp:
ASP VBSCript
oder
ASP.NET VB
(wegen (Excel-)VBA-Vorkenntnisse)
Bearbeiten / Voreinstellungen à hier den entsprechenden Dokumenttyp einstellen!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.2 ODBC-Setup
Anleitung zum Erstellen einer ODBC-Verbindung
Achtung: System-DSN wählen
3.2.1 Tipps für ODBC-Verbindungen
Datenquellenname
à prinzipiell frei wählbar
à mit Präfix "ODBC_" beginnen lassen und um DB-Namen ergänzen
z.B.: ODBC_Schule für DB "Schule"
à im Dreamweaver Quellcode wird ODBC-Verbindung und Dreamweaver-Verbindung besser unterscheidbar
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.2.2 Tipps für den Datenbankordner (IIS)
à Datenbank nicht im Stammordner des Webs speichern!!
à eigenen DB-Ordner anlegen
à Zugriffsrechte auf diesen Ordner so setzen, dass DB zwar gelesen / geschrieben werden kann aber kein
Download der DB mittels Browser möglich ist
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.2.3 Tipps für die Access-Datenbank
Beziehungen nur dort erstellen, wo sie unbedingt notwendig sind
à DB-Konsistenz sollte eher von (ASP-)Programmlogik gewährleistet werden
Felder: leere Zeichenfolge JA / Eingabe erforderlich: NEIN
à damit werden Laufzeitfehler bei DB-Updates / Neuanlage von Datensätzen (Eingabe der Daten mittels
HTML-Formular) vermieden
à DB-Konsistenz sollte hier von JavaScripts (Dreamweaver Verhalten für Formulare) gewährleistet werden
Primärschlüssel
à für viele Dreamweaver-Operationen sind Primärschlüssel unbedingt erforderlich (z.B. Aktualisierung,
Löschen von Datensätzen)
à wenn möglich Auto-Werte verwenden (damit wird ein unbeabsichtigtes Anlegen eines doppelten
Primärschlüssels verhindert)
à falls Primärschlüssel verwendet werden, die keine Auto-Werte sind, sind Laufzeitfehler entsprechend
abzufangen
3.3 Datenbankzugriffe mit Dreamweaver
3.3.1 Verbindung erstellen
Menü Fenster / Datenbanken
1. bis 3. ist bereits durch Sitedefinition erledigt
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.1.1 DSN (Data Source Name)
Verbindungsname: für DW intern verwendeter Name (prinzipiell frei wählbar)
Tipp:
Präfix "DW_" à z.B.: DW_Schule à damit von ODBC-Verbindung unterscheidbar
Data Source Name (DSN) à damit ist die ODBC-Verbindung gemeint
Hinweis: mit "Definieren" könnte an dieser Stelle die ODBC-Verbindung erstellt werden, falls sie noch nicht
existiert
ggf. Benutzername / Kennwort eingeben, falls auf DB nicht von jedem zugegriffen werden kann
Verbindung herstellen mit ....
à Lokalem DSN (d.h. ODBC-Verbindung besteht auf lokalem PC)
à DSN auf Testserver (d.h. ODBC-Verbindung besteht auf PC im Intranet / Internet)
danach: à Verbindung mit Button "Testen" überprüfen
Hinweis
à Vorteil Data Source Name (DSN): funktioniert einwandfrei auch auf anderem Rechner (z.B. Server des
Providers), wenn ODBC-Verbindung entsprechend erstellt und benannt wurde
à Nachteil: für Einrichtung der ODBC-Verbindung verlangen Provider meist Extragebühr
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.1.2 Benutzerdefinierter Verbindungsstring
à dient zum Definieren einer DSN-losen Datenbankverbindung mithilfe einer Verbindungszeichenfolge
à DB-Verbindung wird vom Server zur Laufzeit bei Bedarf hergestellt
à wenn vollständiger Pfad zur Datenbank bei Provider nicht bekannt ist, bauen Sie die Methode
Server.MapPath des ASP-Serverobjekts in Ihre Verbindungszeichenfolge ein
à falls der in der Verbindungszeichenfolge angegebene Datenbanktreiber nicht auf demselben Computer wie
Dreamweaver installiert ist, wählen Sie die Option Mithilfe des Treibers auf dem Testserver
Hinweis
Server.Mappath wandelt die relative Pfadangabe
/seminarunterlagen/beispieldateien/datenbanken/musik.mdb
in eine absolute Pfadangabe (d.h. Laufwerksangaben inkl. Pfadposition auf diesem Laufwerk) am Server (beim
Provider) um.
Hinweis
à Vorteil Benutzerdefinierter Verbindungsstring: es fallen keine Kosten für die Einrichtung der
ODBC-Verbindung bei Provider an
à Nachteil: funktioniert leider nicht auf jedem Server
Verbindungsname: für DW intern verwendeter Name (prinzipiell frei wählbar)
Tipp:
Präfix "DW_" à z.B.: DW_Musik à damit von ODBC-Verbindung unterscheidbar
Beispiel
à Verbindung zu Access-DB Musik.mdb erstellen
à DB befindet sich im Ordner seminarunterlagen/beispieldateien/datenbanken/
"driver={Microsoft Access-Treiber (*.mdb)};dbq=" &
Server.Mappath("/seminarunterlagen/beispieldateien/datenbanken/musik.mdb") &
";uid=Admin"
à diesen Verbindungsstring (inkl. Hochkomma) im Dialogfeld eingeben
danach: à Verbindung mit Button "Testen" überprüfen
3.3.1.3 Ergebnis des Verbindungsaufbaus
à Verbindungsname (hier: DW_Schule)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Tabellen der Datenbank (inkl. aller Felder)
à Abfragen ("Ansichten") der Datenbank
à Gespeicherte Prozeduren:
à ein wiederverwendbares Datenbankelement,
das eine bestimmte Datenbankoperation
durchführt
à enthält SQL-Code, der unter anderem
Datensätze einfügen, aktualisieren oder löschen
kann
Hinweis:
Die Datenbanken mySQL und Microsoft Access
unterstützen gespeicherte Prozeduren nicht!!
3.3.2 Recordset (Datensatzobjekt, Datensatzgruppe)
Menü Fenster / Bindungen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Punkte 1. – 3. bereits erledigt
Name
à Name für Recordset beliebig wählbar
à Vorschlag: Präfix RS_ und Hinweis auf Tabelle / Abfrage (z.B.: RS_CDs)
Verbindung
à hier die zuvor erstellte Dreamweaver-Verbindung auswählen
à "Definieren" würde eine neue Dreamweaver-Verbindung erstellen
Tabelle
à Tabelle oder Abfrage auswählen
Spalten
à entweder alle Spalten (Felder der Datenbank) anzeigen oder Spalten auswählen (Strg + Klick auf
Spaltennamen)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Sortieren
à Feld nach dem auf- oder absteigend sortiert werden soll
Filter
à Bedingungen definieren (welche Datensätze sollen angezeigt werden)
à siehe Formularbasierte Datenbankabfragen
Testen
à Funktionsfähigkeit des Recordsets überprüfen
à Felder des Recordsets mit Maus auf Seite ziehen (bzw. Feld anklicken / Button "Einfügen")
à Listenfeld rechts: Formatierung des Feldes wählen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
1) umschalten auf Live-Data-Ansicht
ACHTUNG
à standardmäßig wird immer nur der 1. Datensatz des Recordsets angezeigt!!
3.3.2.1 Alle Datensätze in einer Tabelle anzeigen
à "Normale" HTML-Tabelle anlegen
à N Spalten, 2 Zeilen à in 1. Zeile die Feldnamen (Überschriften für Tabellenspalten) einfügen
à Felder des Recordsets in die Spalten der 2. Zeile ziehen
à auch hier: zuerst nur der 1. Datensatz angezeigt!
Beispiel (HTML-Tabelle mit Recordset-Daten – nur 1. Datensatz)
3.3.2.1.1 Serververhalten "Bereich wiederholen"
à 2. Zeile der Tabelle markieren
à Serververhalten "Bereich wiederholen" einfügen
Beispiel (HTML-Tabelle mit Recordset-Daten und wiederholtem Bereich)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.3 Dynamische Tabellen (inkl. Formatierungen)
1) Recordset (Datensatzgruppe) definieren
2) Wiederholter Bereich
3) Dynamische Tabelle
4) Dynamischer Text
5) Datensatzgruppen Navigationsleiste
6) Datensatzgruppen Navigationsstatus
7) Master-Detailseitensatz
8) Einfügeformular für Datensätze
9) Aktualisierungsformular für Datensätze
à erzeugt Tabelle mit 2 Zeilen
à 1. Zeile: Felder des Recordsets als Überschriften der Tabellenspalten ausgegeben
à 2. Zeile: wiederholdender Bereich (d.h. Serververhalten "Bereich wiederholen" wird automatisch eingefügt)
Beispiel (Dynamische Tabelle à mit Recordset-Daten und wiederholtem Bereich)
3.3.4 (ASP-) Quellcode
3.3.4.1 Ordner "Connections"
à Ordner "Connections" wird automatisch erstellt, wenn Website Verbindung zu Datenbank(en) aufnimmt
à hier werden für jede Verbindung zu einer Datenbank die entsprechenden (ASP-)Verbindungsseiten
automatisch generiert
à Dateiname ergibt sich aus DW-Verbindungsname (z.B. DW_Schule) + Erweiterung ASP
à z.B. DW_Schule.asp
à Variable für Verbindungsdaten: MM_ + DW-Verbindungsname (z.B. DW_Schule) + "_STRING"
à z.B. MM_DW_Schule_STRING
à diese Variable nimmt DSN bzw. Benutzerstring auf
Beispiele:
DW_Schule.asp (DSN verwendet)
<%
Dim MM_DW_Schule_STRING
MM_DW_Schule_STRING = "dsn=ODBC_Schule;"
%>
DW_Musik.asp (Benutzerdefinierter Verbindungsstring verwendet)
<%
Dim MM_DW_Musik_STRING
MM_DW_Musik_STRING = "driver={Microsoft Access-Treiber (*.mdb)};dbq=" &
Server.Mappath("/seminarunterlagen/beispieldateien/datenbanken/musik.mdb") &
";uid=Admin"
%>
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.4.2 ASP-Seiten mit Datenbankanbindung
CODEAUSZUG
(Musik_Uebersicht_03.asp)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
à Serverseitiges Script in der Scriptsprache VBScript
<!--#include file="../../../Connections/DW_Musik.asp" -->
à die entsprechende "Verbindungsseite" im Connections-Ordner einbinden
<%
Dim RS_CDs
à die Recordset-Variable
Dim RS_CDs_numRows
Set RS_CDs = Server.CreateObject("ADODB.Recordset")
à Recordset wird angelegt
RS_CDs.ActiveConnection = MM_DW_Musik_STRING
à in der Variablen MM_DW_Musik_STRING stehen die Verbindungsinformationen
à Variable MM_DW_Musik_STRING wird in DW_Musik.asp definiert
RS_CDs.Source = "SELECT * FROM CDs"
à woher kommen die Daten für das Recordset?
à aus einer SQL-Anweisung!
RS_CDs.CursorType = 0
RS_CDs.CursorLocation = 2
RS_CDs.LockType = 1
RS_CDs.Open()
à Recordset wird geöffnet und die Daten laut SQL-Anweisung eingelesen
RS_CDs_numRows = 0
%>
. . . . . . . . . .
<table width="644" border="0" cellpadding="0" cellspacing="0">
. . . . . . . . . .
<% While ((Repeat1__numRows <> 0) AND (NOT RS_CDs.EOF)) %>
à Wiederholender Bereich in einer dynamischen Tabelle
à Recordset RS_CDs wird bis zum Ende (RS_CDs.EOF) (EOF = End Of File) durchlaufen
<tr>
<td><%=(RS_CDs.Fields.Item("CD_ID").Value)%></td>
à in der aktuellen Tabellenzelle (<td>) wird der Inhalt (Value) des Feldes CD_ID des Recordsets RS_CDs
ausgegeben
<td><%=(RS_CDs.Fields.Item("Gruppe").Value)%></td>
<td><%=(RS_CDs.Fields.Item("Titel").Value)%></td>
<td><%=(RS_CDs.Fields.Item("Erscheinungsjahr").Value)%></td>
<td><%=(RS_CDs.Fields.Item("Art").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RS_CDs.MoveNext()
à zum nächsten Datensatz im Recordset RS_CDs gehen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Wend
%>
. . . . . . . . . .
</body>
</html>
<%
RS_CDs.Close()
à Recordset wird RS_CDs geschlossen
Set RS_CDs = Nothing
à Arbeitsspeicher, der von Recordset RS_CDs belegt wurde, wird wieder freigegeben
à d.h. Recordset wird "aufgelöst"
%>
3.3.5 Varianten für Recordsets
à grundsätzlich gibt es 2 Möglichkeiten, Daten für Recordset in Dreamweaver zu bestimmen
1) Variante lt. Dialog "Einfach" à hier die entsprechende Abfrage aus der Datenbank auswählen
à entspricht SQL "SELECT * FROM <Abfragename>
2) Variante lt. Dialog "Erweitert" à hier die SQL-Anweisung (aus Access-Abfragedefinition kopiert) eingeben
à didaktisch bessere Variante!!
à später wird es notwendig sein, SQL-Anweisungen selbst zu ändern / zu erstellen
à schon jetzt sollte etwas mit SQL "experimentiert"
werden!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
1. Variante:
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
2. Variante:
3.3.5.1 Recordsets kopieren
à Recordset einer Seite kann für eine andere Seite einfach kopiert werden!
à Recordset der Ausgangsseite mit rechter Maus anklicken / kopieren
à Zielseite öffnen / aktivieren
à in Zielseite Fenster Anwendungen / Register Bindungen einblenden
à rechte Maus / Einfügen
à Recordset wurde von Ausgangsseite auf Zielseite übernommen
3.3.5.2 Recordset mit SQL-Anweisung anlegen
à Variante "SQL-Anweisung aus Access-Datenbank"
à dynamische Tabelle erstellen
à Spaltenlayouts (Schriftart, Breite etc.) ggf. anpassen
à hier z.B. Lehrer-ID immer in Kleinbuchstaben / Zuname immer in Großbuchstaben formatiert
Quellcode dazu:
<td><%= LCase((RS_Lehrer.Fields.Item("LehrerID").Value)) %></td>
<td><%= UCase((RS_Lehrer.Fields.Item("Zuname").Value)) %></td>
à in Access-DB ist Lehrer-ID tw. klein, tw. groß geschrieben / Zuname nur mit großem Anfangsbuchstaben
Beispiel (Lehrer aufsteigend sortiert, Tabelle / Felder formatiert)
3.3.5.2.1 Quellcode bearbeiten – HTML-Hyperlinks ergänzen
Probleme
à Felder E-Mail und Homepage werden nur als Text und nicht als Hyperlink angezeigt
à bei Hyperlink zur Homepage steht in der Datenbank nur die Adresse (ohne http:)
Quellcode
<td><%=(RS_Lehrer.Fields.Item("EMail").Value)%></td>
<td><%=(RS_Lehrer.Fields.Item("Homepage").Value)%></td>
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à nicht über Formatierung aus der Formatliste lösbar!
à Quellcode direkt bearbeiten
Tipp
à Seite mit Dummy-Hyperlink / Dummy-E-Mail-Link in leerem Dokument erzeugen
à die "fehlenden" HTML-Teile zum Erstellen der Links im Quellcode ergänzen
Quellcode
<a href="http://www.hakwr-neustadt.ac.at" target="_blank">Link zur HAKHomepage</a>
<a href="mailto:[email protected]">E-Mail an Buschka</a>
Problem
à nicht jeder Lehrer hat private E-Mail / Homepage
Tipp
à Links nur dann ergänzen, wenn Feld mit E-Mail / Homepage nicht leer ist
à If...Then Anweisung (ASP) ergänzen
Quellcode-Auszug
<% If Trim(RS_Lehrer.Fields.Item("EMail").Value) <> "" Then %>
à wenn E-Mail-Feld nicht leer ist….
<a href="mailto:<%=(RS_Lehrer.Fields.Item("EMail").Value)%>">E-Mail privat
<%=RS_Lehrer.Fields.Item("Zuname").Value & " " &
RS_Lehrer.Fields.Item("Vorname").Value%></a>
à E-Mail-Link (mit Anzeige des Lehrer Zu- und Vornamens) erzeugen
<% Else %>
à wenn E-Mail-Feld leer ist….
&nbsp;
à nur geschütztes Leerzeichen ausgeben (damit wird die Tabellenzelle – falls sie einen Rahmen hat – auch
wirklich angezeigt)
<% End If %>
</td>
<td>
<% If Trim(RS_Lehrer.Fields.Item("Homepage").Value) <> "" Then %>
à wenn Homepage-Feld nicht leer ist….
<a href="http://<%=(RS_Lehrer.Fields.Item("Homepage").Value)%>"
target="_blank">Homepage privat <%=RS_Lehrer.Fields.Item("Zuname").Value%></a>
à Link zur Homepage (mit Anzeige des Lehrer Zunamens) erzeugen
<% Else %>
&nbsp;
<% End If %>
</td>
Beispiel (Lehrer aufsteigend sortiert, Hyperlinks "aktiviert" bzw. leere Tabellenzellen erzeugt)
3.3.6 Formularbasierte Datenbankabfragen
3.3.6.1 Einfache Abfrageformulare
3.3.6.1.1 Schritt 1 – Abfrageformular entwerfen
à Formular mit Listenfeld für mögliche Titel erzeugen
à Aktion des Formulars: die (noch zu erzeugende) Suchergebnisseite
à Methode: POST
Achtung
à Wert (Value) für "(Alle)" muss "%" sein (Joker für ANSI-SQL!)
Beispiel (Lehrersuchformular einfach)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.6.1.2 Schritt 2 – Suchergebnisseite entwerfen
à Recordset mit Filter (WHERE-Bedingung) anlegen
à im Datenbankfeld "Titel" soll jener Text vorkommen, den der User im Formular im Listenfeld
"Lehrer_Titel" ausgewählt hat
à Erweiterte Ansicht
à Filter "Enthält" entspricht SQL-WHERE-Anweisung "LIKE"
à Variable MMColParam (Name ist frei wählbar!!) wird zur Laufzeit mit dem Inhalt des Formularfeldes
"Lehrer_Titel" gefüllt
Tipp
Variable (Parameter) so nennen wie Formularfeld à erweitert um Präfix "Frm_"
z.B.: Frm_Lehrer_Titel à soll mit Lehrer_Titel aus dem Formular gefüllt werden
!! ACHTUNG: Joker in Access = * / Joker in ANSI-SQL = % !!
!! Access verwendet doppelte Hochkomma (") / ANSI-SQL einfache Hochkomma (') !!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.6.1.2.1 Serververhalten "Bereich zeigen"
à Tabelle mit Lehrerdaten sowie Anzahl der gefundenen Lehrer nur zeigen, wenn Recordset nicht leer ist
à Tabelle markieren
à Serververhalten einfügen
à ggf. Meldungszeile erzeugen, die nur dann gezeigt wird, wenn Datensatzgruppe leer ist
à auch hier entsprechendes Serververhalten hinzufügen
Beispiel (Lehrersuchformular einfach und Suchergebnisseite)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.6.2 Komplexe Abfrageformulare
3.3.6.2.1 Schritt 1 – Abfrageformular entwerfen
à hier ebenfalls Recordset anlegen (für Werte des Listenfeldes mit Lehrernamen)
à Formular mit entsprechenden Eingabefeldern / Listenfeldern anlegen
à Listenfeld mit Titel (Werte für Titel wurden direkt eingegeben)
à Listenfeld mit Lehrernamen (direkt aus DB in Liste einlesen)
à bei Formular-Aktion die (noch zu entwickelnde) Suchergebnisseite (.ASP) angeben
à Methode: POST
1) Listenfeld anlegen / Namen vergeben
2) Liste mit dynamischem Inhalt aus der Datenbank füllen
3) ggf. statische Werte (zu Beginn des Listenfeldes) eingeben
4) Recordset auswählen
5) Feld, das in der Formularliste angezeigt werden soll
6) Wert, der mit dem angezeigten Feld verbunden werden soll
7) Listeneintrag, der diesen Wert hat, soll beim Öffnen den Formulars vorausgewählt sein
Achtung
à Wert (Value) für "(Alle)" muss "%" sein (Joker für ANSI-SQL!)
ad 5)
Problem
à nur ein Feld auswählbar
à für Anzeige des gesamten Namens (Zu- und Vorname) folgende Lösungsmöglichkeiten
à berechnetes Feld in Access-Datenbank erstellen (Namen aus Zu- und Vornamen erstellen)
à dieses Feld in Recordset übernehmen
à oder: (ASP-)Quellcode ändern!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Quellcode Original
<option value="<%=(RS_Lehrersuche.Fields.Item("LehrerID").Value)%>" <%If (Not isNull("*"))
Then If (CStr(RS_Lehrersuche.Fields.Item("LehrerID").Value) = CStr("*")) Then
Response.Write("SELECTED") : Response.Write("")%>
><%=(RS_Lehrersuche.Fields.Item("Zuname").Value)%></option>
Quellcode geändert
...
<%=(RS_Lehrersuche.Fields.Item("Zuname").Value) & " " &
(RS_Lehrersuche.Fields.Item("Vorname").Value) %>
...
3.3.6.2.2 Schritt 2 – Suchergebnisseite entwerfen
Tipp
à Dummy-Abfrage in Access erstellen (z.B.: AktiveLehrer_Formularabfrage)
à hier mit den variablen Abfragefeldern "experimentieren"
à entsprechenden SQL-Code kopieren und in Dialogfeld "Erweitert" für Recordset einfügen
ACHTUNG
à Access-SQL in ANSI-SQL umformen!
Access-SQL (Beispiel)
SELECT Lehrer.LehrerID, Lehrer.Titel, Lehrer.Zuname, Lehrer.Vorname, Lehrer.EMail,
Lehrer.Homepage
FROM Lehrer
WHERE (((Lehrer.LehrerID) Like "*busch*") AND ((Lehrer.Titel) Like "*Mag.*") AND
((Lehrer.Aktiv)=True))
ORDER BY Lehrer.Sortierung, Lehrer.Zuname, Lehrer.Vorname;
à entsprechende Variable (Parameter) definieren
Beispiel Frm_Lehrer_ID, Frm_Lehrer_Titel
ANSI-SQL (Beispiel)
SELECT Lehrer.LehrerID, Lehrer.Titel, Lehrer.Zuname, Lehrer.Vorname, Lehrer.EMail,
Lehrer.Homepage
FROM Lehrer
WHERE Lehrer.LehrerID Like '%Frm_Lehrer_ID%' AND Lehrer.Titel Like
'%Frm_Lehrer_Titel%' AND Lehrer.Aktiv=True
ORDER BY Lehrer.Sortierung, Lehrer.Zuname, Lehrer.Vorname
à ggf. entsprechendes Serververhalten (Anzeigen für leere / nicht-leere Recordsets) ergänzen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Beispiel (Lehrersuchformular und entsprechende Ergebnisseite)
3.3.6.2.3 Variation – variable Sortierung und variable Bedingungsverknüpfung
à im Suchformular Optionsschaltflächen mit entsprechenden Werten für Sortierung / Verknüpfung formuliert
à in Ergebnisseite Variablen und SQL-Anweisung entsprechend anpassen
Beispiel (variable Sortierung / Bedingungsverknüpfung im Suchformular)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.7 Symbolleiste "Anwendung"
1) Datensatzgruppe (Abfrage, Recordset)
2) Wiederholter Bereich
3) Dynamische Tabelle
4) Dynamischer Text
5) Datensatzgruppe-Navigationsleiste
6) Datensatzgruppe-Navigationsstatus
7) Master-Detailseitensatz
8) Einfügeformular für Datensätze
9) Aktualisierungsformular für Datensätze
3.3.7.1 Datensatzgruppen-Navigationsleiste
Vorarbeiten
à Recordset anlegen
à dynamische Tabelle anlegen (z.B. nur mit jeweils 10 angezeigten Datensätzen)
à ggf. Tabelle / Zellen formatieren
à Recordset auswählen
à Navigationselemente entweder als Text oder als Bilder (Pfeile für vor / zurück etc.)
à Bilder (first.gif, last.gif, next.gif, previous.gif) à können z.B. mit Photoshop dem eigenen Seitendesign
angepasst werden
Tipp
à grafische Navigationselemente mit Alt-Tag versehen!
à gleichzeitig werden automatisch die erforderlichen Serververhalten wie z.B. "Zum ersten Datensatz
verschieben", "Bereich zeigen, wenn nicht letzter Datensatz" etc. eingefügt
3.3.7.2 Datensatzgruppen-Navigationsstatus
à zeigt an, welche Datensätze gerade angezeigt werden
à z.B. "Datensätze 11 bis 20 von 76"
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Tipp
à Navigationsleiste und Statusanzeige VOR die eigentlichen Datensätze platzieren
à befinden sich dann immer an der gleichen Stelle, unabhängig davon, wie viele Datensätze zusammen
angezeigt werden
Beispiel (Datensatz Navigation inkl. Status der Navigation, grafische Elemente angepasst inkl. Alt-Tag)
Beispiel (Navigation in Recordset mit Bedingung (nur aktive Lehrer mit Titel "Prof."))
3.3.7.3 Master-Detailseitensatz
à Recordset wählen (hier: RS_Lehrer)
à Felder bestimmen, die in der Masterseite angezeigt werden sollen (hier: LehrerID, Zuname, Vorname)
à Primärschlüssel für die Verknüpfung von Master- und Detailseite auswählen (hier: LehrerID)
à falls nicht alle Datensätze gezeigt werden (hier: jeweils 10) à Navigationsleiste wird automatisch
hinzugefügt
à Detailseite wird automatisch erstellt
à Felder bestimmen, die in der Detailseite angezeigt werden sollen (hier: alle Felder des Recordsets)
Ergebnisse
à Masterseite: dynamische Tabelle / ggf. Navigationsleiste inkl. Status
à Link auf Detaildatensatz (auf Detailseite) mittels Primärschlüssel
à Detailseite: Tabelle mit allen Felder, die für Detailseite ausgewählt wurden
Nachbearbeitung
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à ggf. Tabellen in Master- und Detailseite umformatieren
à Link von Detailseite zurück zur Masterseite einfügen
Beispiel (Master- und Detailseite mit Lehrerdaten / Detailseite mit "aktiven" E-Mail und Homepage-Links)
3.3.8 Serververhalten
3.3.8.1 Datensatzgruppe (Abfrage)
à entspricht Recordset
à wurde bereits besprochen (vgl. "Recordset")
3.3.8.2 Befehl
à entspricht "stored procedures" ("gespeicherte Prozeduren") (von Access nicht unterstützt)
3.3.8.3 Bereich wiederholen
à dynamisches Element markieren (z.B. Zeile einer Tabelle)
à Serververhalten einfügen
à wurde bereits besprochen (vgl. Serververhalten "Bereich wiederholen")
3.3.8.4 Seitenerstellung für Datensatzgruppe (Zu Datensatz verschieben)
Vorarbeiten
à Recordset anlegen
à dynamischen Text / dynamische Tabelle anlegen
à Serververhalten "Zum ... Datensatz verschieben" einfügen
à ermöglicht selbsterstellte Navigation durch das Recordset
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.8.4.1 Zu bestimmtem Datensatz verschieben
Vorarbeiten
à Aufrufseite und Seite, die zum gewünschten Datensatz verzweigen soll, müssen das gleiche Recordset
verwenden (Recordset kopieren)
à Aufrufseite (hier: "Navigation_Zu_Datensatz.asp")erstellen, die Link mit Query-String "ID" enthält
à Link in Aufrufseite mit ASP-Code ergänzen (hier: LehrerID aus Recordset als Query-String übergeben)
<a href=
"Zeige_Lehrer.asp?ID=<%= LCase((RS_Lehrer.Fields.Item("LehrerID").Value))%>"
target="_self">
Details zeigen</a>
à in Zielseite (hier: "Zeige_Lehrer.asp") Serververhalten "Zu bestimmtem Datensatz verschieben"
einfügen
siehe auch "Zu Detailseite wechseln"
Beispiel (Benutzterdefinierte Navigation, Detailseiten-Link mit Serververhalten)
3.3.8.5 Bereich zeigen
à dynamischen Bereich in Abhängigkeit von Bedingung anzeigen
à z.B. "Zeigen, wenn Recordset nicht leer ist"
à wurde bereits besprochen
3.3.8.6 Dynamischer Text
à Feld aus Recordset wählen
à Format einstellen
Sonderformate
à Server.HTMLEncode: HTML-Tags werden NICHT interpretiert sondern als "normaler Text" ausgegeben
à Server.URLEncode: Sonderzeichen (Umlaute, Leerzeichen etc.) in Query-Strings werden dekodiert
à Server.Mappath: relativer Pfad (Pfadangabe bezogen auf Ordnerhierarchie des Webs – von Stammordner
aus gesehen) in absoluten Pfad (inkl. Laufwerksangabe) umgewandelt
Beispiel (Sonderformate)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.8.7 Zu Detailseite wechseln
à Ausgangsseite (Übersichtsseite mit Datensätzen) und Detailseite verwenden vorerst das gleiche Recordset
à zuerst Ausgangsseite mit dynamischen Daten (Recordset) erstellen (inkl. Navigationsstruktur)
à hier Serververhalten "Zu Detailseite wechseln" einfügen
à Primärschlüssel (hier: LehrerID) als URL (Query-String bzw. Formular mit GET) oder Formularparameter
(Formular mit POST) an die Detailseite übergeben (hier: Lehrer_Detail.asp)
à Detailseite: hier bei Recordset WHERE-Klausel um Parameter für Query-String bzw. Formularparameter
ergänzen
Beispiel
à WHERE-Klausel in Übersichtsseite
SELECT Lehrer.LehrerID, Lehrer.Titel, Lehrer.Zuname, Lehrer.Vorname, Lehrer.EMail,
Lehrer.Homepage
FROM Lehrer
WHERE Lehrer.Aktiv=True
ORDER BY Lehrer.Sortierung, Lehrer.Zuname, Lehrer.Vorname
à WHERE-Klausel in Detailseite
SELECT Lehrer.LehrerID, Lehrer.Titel, Lehrer.Zuname, Lehrer.Vorname, Lehrer.EMail,
Lehrer.Homepage
FROM Lehrer
WHERE Lehrer.Aktiv=True AND Lehrer.LehrerID = 'QS_LehrerID'
ORDER BY Lehrer.Sortierung, Lehrer.Zuname, Lehrer.Vorname
wobei folgende Variable definiert wurde:
Tipp
à Namen für Parameter für Recordsets à Präfix verwenden
à "FRM_" für Formularparameter (Request.Form)
à "QS_" für Query-Strings (Request.QueryString)
siehe auch: "Zu bestimmtem Datensatz verschieben"
Beispiel (Lehrer Übersichtsseite und Detailseite)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.8.8 Zu Seite mit ergänzenden Themen wechseln
Sinn
à Formularparameter bzw. URL-Parameter (Query-Strings) werden von einer Seite zur nächsten, zur
übernächsten usw. weitergereicht
Ablauf
à Ausgangsseite (S1) enthält z.B. Formular (POST / GET) à Action = Seite 2 (S2)
à S2 erhält die Formularparameter
à in S2 wird Serververhalten "Zu Seite mit ergänzenden Themen wechseln" eingefügt und auf S3 verwiesen
à S3 kann nun z.B. von S2 – die von S1 empfangenen Formulardaten – als Query-String weiter übernehmen
usw.
à Ergebnisseite kann dann z.B. die Parameter des Query-Strings als Variable für die WHERE-Klausel des
Recordsets verwenden
Beispiel (Suchseite mit Formular à Zwischenseite 1 Request.Form à Zwischenseite 2 Request.QueryString à
Ergebnisseite verarbeitert Query-String als Parameter für WHERE)
3.3.8.9 Dynamische Formularelemente
à Formularelemente werden mit Werten aus Recordset versorgt
à Seite mit Formular erstellen
à Recordset anlegen
à jeweiliges Formularelement (Textfeld, Kontrollkästchen etc.) auswählen
à Serververhalten "Dynamische Formularelemente" für jeweiliges Element einfügen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Alternative: bei Eigenschaften des Formularfeldes den Anfangswert mit dynamischem Inhalt füllen
à Checkbox (Kontrollkästchen): bei Access-Treiber deutsch: True / False als Wahr / Falsch angeben!
Achtung: großer Anfangsbuchstabe bei Wahr / Falsch!
à dynamisches Optionsfeld (hier: Werte "M" und "W")
à entsprechenden Wert bei jedem Optionsfeld der Gruppe angeben
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Achtung
à Formularfelder sind zwar änderbar
à Formulareingaben werden aber nicht in der Datenbank gespeichert!
Tipps
à Textfelder gegen Änderungen schützen (readonly)
z.B.:
<input name="Zuname" readonly type="text" class="HintergrundInput" id="Zuname"
value="<%= UCase((RS_Lehrer_Sprechstunden.Fields.Item("Zuname").Value)) %>">
oder
à Verhalten "JavaScript aufrufen" für Textfeld einfügen (für Ereignis onFocus)
z.B.:
this.DynamischesFormular.Sprechtag.blur();
à sobald das Feld (hier: Sprechtag) den Focus erhält (aktiviert wird) à Fokus wegnehmen (blur)
Sonderfall Optionsschaltfläche
à readonly / disabled funktioniert nicht
à eigene JavaScripts entwickeln
à beim Laden der Seite (Body / onLoad) Werte der Optionsschaltflächen in Variablen speichern
à bei Klick auf Optionsschaltfläche Originalwerte zurückschreiben
<script type="text/javascript">
<!-var M;
var W;
à diese Funktion bei Body / onLoad aufrufen
function WerteMerken() {
W = document.getElementsByName("Geschlecht")[0].checked;
M = document.getElementsByName("Geschlecht")[1].checked;
}
à diese Funktion bei Input / Geschlecht / onClick aufrufen
function WerteSetzen() {
document.getElementsByName("Geschlecht")[0].checked = W;
document.getElementsByName("Geschlecht")[1].checked = M;
}
//-->
</script>
Beispiel (dynamisches Formular mit Navigationsstruktur, alle Formularinhalte sind gesperrt!)
3.3.9 Datenbank administrieren
Beispiel (alle in den folgenden Kapiteln besprochenen Techniken für die Datenbankadministration)
3.3.9.1 Neue Datensätze anlegen
3.3.9.1.1 Serververhalten "Datensatz einfügen"
à Formular mit Texfeldern, Optionsfeldern, Checkbox etc. erstellen
à Formular: Action-Attribut, Methode sowie Ziel leer lassen!
à Recordset ist NICHT notwendig!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à ggf. Formular mit Verhalten "Yaromat / CheckForm" überprüfen
à v.a. Datums- und Zeitfelder, E-Mail etc. leicht zu überprüfen
à Serververhalten "Datensatz einfügen" wählen
à ggf. das Format, in dem die Werte gesendet werden sollen, einstellen
Tipp
à Formularfelder genauso nennen wie Felder in der Datenbank
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Dreamweaver kann die Formularelemente den Feldern automatisch zuweisen (vgl. Grafik "Datensatz
einfügen")
Tipp
à Serververhalten ist flexibler als Einfügeformular für Datensätze
à vgl. z.B. Listenfeld mit Sprechtag bzw. reines Textfeld für Sprechtag bei Einfügeformular
à eher Serververhalten verwenden
3.3.9.1.1.1 Laufzeitfehler abfangen (ASP-Err-Objekt)
à Laufzeitfehler z.B. durch doppelte Werte in Primärschlüssel verursacht!
ASP-Err-Objekt
à On Error Resume Next
bei Laufzeitfehler ohne Fehlermeldung und ohne Unterbrechung des Scripts weitermachen
(Err-Objekt wird trotzdem mit Eigenschaften versorgt)
à On Error Goto 0
Verfolgung der Laufzeitfehler ausschalten
Eigenschaften und Methoden des Err-Objekts
à Err.Clear (löscht Eigenschaften des Err-Objekts)
à Err.Number (die Fehlernummer)
à Err.Description (verbale Fehlerbeschreibung)
à Err.Source (Quelle des Fehlers – z.B. ein Datenbankobjekt)
Vorgehensweise für Laufzeitfehler
à zuerst Stelle identifizieren, bei der Laufzeitfehler auftreten könnte
z.B.
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
(hier wird der neue Datensatz in die Datenbank eingefügt à hier würde bei doppeltem Primärschlüssel
Laufzeitfehler auftreten)
à On Error resume Next Anweisung VOR der "Gefahrenquelle" einbauen
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
On Error resume Next
'bei der nächsten Anweisung könnte ein Laufzeitfehler entstehen
MM_editCmd.Execute
If Err.Number <> 0 Then
à ist ein Fehler aufgetreten?
Response.Write(Fehlermeldung)
Response.End
End If
On Error Goto 0
à Fehlerverfolgung wieder ausschalten
Trick
à ASP-Variable Fehlermeldung soll mit Response.Write eine benutzerfreundliche Fehlermeldung im
HTML-Format ausgeben
à zuerst eine "Dummy-Seite" mit Fehlermeldung und Link zurück zum Eingabeformular - mit
JavaScript:history.back() - "basteln"
à HTML-Codes dieser "Dummy-Seite" in die Variable Fehlermeldung übernehmen
à der gesamte Vorgang der Variablenerzeugung wird in eine .INC-Datei ausgelagert, die als SSI
(Server-Side-Include) in die Seite mit dem Eingabeformular eingebunden wird
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Quellcode der .INC-Datei
(hier: Laufzeitfehler.inc)
<%
Dim Fehlermeldung
Fehlermeldung = "<html>"
Fehlermeldung =Fehlermeldung & "<head>"
Fehlermeldung =Fehlermeldung & "<title>Laufzeitfehler</title>"
Fehlermeldung =Fehlermeldung & "<meta http-equiv='Content-Type'
content='text/html; charset=iso-8859-1'>"
Fehlermeldung =Fehlermeldung & "</head>"
Fehlermeldung =Fehlermeldung & "<body bgcolor='#FFFF00' text='#FF0000'>"
Fehlermeldung =Fehlermeldung & "<h1>Laufzeitfehler!</h1>"
Fehlermeldung =Fehlermeldung & "<h2>Doppelter Prim&auml;rschl&uuml;ssel im Feld
<font size='6'>Lehrer-ID</font>! </h2>"
Fehlermeldung =Fehlermeldung & "<h3>Bitte &auml;ndern Sie die Lehrer-ID und
speichern Sie den Datensatz erneut!</h3>"
Fehlermeldung =Fehlermeldung & "<p><a href='javascript:history.back()'
target='_self'>Zur&uuml;ck zum Eingabeformular...</a></p>"
Fehlermeldung =Fehlermeldung & "</body>"
Fehlermeldung =Fehlermeldung & "</html>"
%>
Einbindung der INC-Datei (in die Datei mit dem Formular für die Datensatz-Neuanlage einbinden)
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../../../../Connections/DW_Schule.asp" -->
<!--#include file="../Laufzeitfehler.inc" -->
à Response.End bricht die Ausgabe der Seite (hier: der durch die Variable Fehlermeldung generierten
Fehlermeldungsseite!!) ab
à User kann mit Link zurück zu Eingabeformular (Formulardaten sind dadurch nach wie vor vorhanden!)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.1.2 Einfügeformular für Datensätze
à Verbindung und Tabelle, in die Daten eingefügt werden sollen, auswählen
à Formular wird automatisch erstellt
à Beschriftungen und Format, in dem Formularfelder gesendet werden einstellen
à v.a. bei Optionsfeldern, Checkbox und Datumswerten aufpassen!
à ggf. nachträglich Formular umformatieren
à ggf. nachträglich Verhalten für Formular (Yaromat) einbauen
à auch hier wieder: Laufzeitfehler abfangen!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.2 Datensätze löschen
à Recordset muss existieren
à Formular muss existieren
à in Formularfeldern muss mindestens Primary-Key (und noch zusätzliche Felder, die dem User anzeigen,
welchen Datensatz er löschen wird) existieren
à dynamische Formularfelder aus Recordset füllen
Tipp
à in Seite, die alle Datensätze auflistet, Link zu Löschseite einbauen
à Primary-Key als Query-String an Löschseite übergeben
à in Löschseite bei Recordset die WHERE-Klausel auf Gleichheit mit Primary-Key setzen!
à dadurch wird nur der eine zu löschende Datensatz ausgewählt und im Formular angezeigt
Beispiel
<a href="Datensatz_Loeschen/Datensatz_Loeschen.asp
?ID=<% = LCase((RS_LehrerInfos.Fields.Item("LehrerID").Value)) %>"
target="_self">L&ouml;schen</a>
Achtung
à Datensatz wird ohne Sicherheitsabfrage gelöscht!
Tipp
à Sicherheitsabfrage „Wirklich löschen J/N?“ mit JavaScript einfügen!
à im <head>-Abschnitt einfügen:
<script type="text/javascript">
<!-function Sicher() {
return window.confirm("Wollen Sie diesen Datensatz wirklich löschen?");
}
//-->
</script>
à Formular-Tag ergänzen:
<form action="<%=MM_editAction%>" method="POST" name="LoeschFormular"
id="LoeschFormular" onSubmit="return Sicher()">
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.3 Datensätze ändern
3.3.9.3.1 Serververhalten "Datensatz aktualisieren"
à Formular mit Texfeldern, Optionsfeldern, Checkbox etc. erstellen
à Formular: Action-Attribut, Methode sowie Ziel leer lassen!
à ggf. Formular mit Verhalten "Yaromat / CheckForm" überprüfen
à v.a. Datums- und Zeitfelder, E-Mail etc. leicht zu überprüfen
à auch hier wieder: Laufzeitfehler (doppelter Primärschlüssel) abfangen!
Tipp
à in Seite, die alle Datensätze auflistet, Link zu Aktualisierungsseite einbauen
à Primary-Key als Query-String an Aktualisierungsseite übergeben
à in Aktualisierungsseite bei Recordset die WHERE-Klausel auf Gleichheit mit Primary-Key setzen!
à dadurch wird nur der eine zu ändernde Datensatz ausgewählt und im Formular angezeigt
Beispiel
<a href="Datensatz_Aendern/Aendern_Serververhalten.asp
?ID=<% = LCase((RS_LehrerInfos.Fields.Item("LehrerID").Value)) %>"
target="_self">&Auml;ndern</a>
3.3.9.3.2 Aktualisierungsformular für Datensätze
à ähnlich Einfügeformular für Datensätze
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.4 Benutzerauthentifizierung
Beispiele (mit allen in den folgenden Kapiteln besprochenen Techniken)
3.3.9.4.1 User-Login
à Formular mit 2 Feldern (User und Passwort) sowie Submit-Button erstellen
à Serververhalten "Benutzerauthentifizierung / Benutzer anmelden" einfügen
à Formular / Verbindung / Tabelle sowie Felder für User und Passwort festlegen
à Seiten festlegen, zu denen bei erfolgreicher / fehlgeschlagener Anmeldung verzweigt werden soll
à hier wird also nur Zugriff bezüglich Benutzername und Kennwort eingeschränkt (d.h. alle existierenden User
mit richtigem Passwort können auf die Seite (hier: User_Login_ok.asp) zugreifen
Achtung
à Username wird in Session-Variable "MM_UserName" gespeichert!
Tipp
à Formularfeld mit Usernamen beim Laden der Seite automatisch aktivieren (auswählen)
à JavaScript für <body> onLoad-Ereignis schreiben
z.B.: document.UserLogin.User.focus();
wobei hier UserLogin = Formularname, User = Textfeld mit Usernamen, focus(); = aktivieren
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.4.2 Zugriffsrechte auf bestimmte Seiten beschränken
à zuerst Login-Seite wie bei "normalem" Login erstellen (vgl. oben)
à Zugriff beschränken basierend auf: Benutzername, Kennwort und Zugriffsebene
à als Zugriffsebenen z.B. das Feld "User" verwenden (oder ein anderes Feld aus der Tabelle mit den
Userdaten)
à dynamische (ASP-)Seite wählen, auf die der Zugriff beschränkt werden soll
à Ebenen für Zugriffsberechtigungen definieren (d.h. Usernamen, die Zugriff haben sollen, hier eingeben)
à Seite für User, die nicht zugriffsberechtigt sind, angeben
Achtung
à Serververhalten funktioniert nur für die markierten Ebenen à alle Ebenen markieren (hier: Buschka und
Administrator)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
3.3.9.4.3 User-Logout
à Alle Sessionvariablen für diesen User werden gelöscht
à Abmeldung kann erfolgen wenn Link angeklickt wird bzw. wenn bestimmte Seite geladen wird
3.3.9.4.4 User-Neuanlage
Vorarbeiten
à Formular mit Usernamen und Passwort anlegen
à Serververhalten "Datensatz einfügen" anlegen
à nach dem Einfügen hierher gehen: Seite, falls User-Neuanlage funktioniert hat
à Serververhalten "Neuen Benutzernamen überprüfen" einfügen
à Seite angeben, zu der verzweigt wird, falls User bereits existiert
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
4 Tools & Tricks
4.1 Dynamische Fotos
à Datenbank mit Lehrerdaten enthält KEIN Feld für Namen der Fotodatei
à Namen der Fotodatei ergibt sich aus LehrerID (Primärschlüssel) + ".JPG"
à Recordset für Lehrerdaten mit dynamischer Tabelle erstellen
à falls Datei gefunden wird, wird sie als Bild in HTML angezeigt
à falls Datei nicht existiert, wird ein "Dummy-Bild" angezeigt
à weder ASP-Seite noch Datenbank muss geändert werden, wenn neue Lehrerfotos dazukommen
à es genügt, das entsprechend benannte Foto (LehrerID.jpg) in den Foto-Ordner zu kopieren
Quellcode ergänzen
à ASP-Seite sucht in Ordner mit Fotos nach der entsprechenden Datei
. . . . . . . . . .
<%
Dim UserKennung
Dim FotoDatei
Dim FotoDateiName
Dim BildPfad
BildPfad = "/Seminarunterlagen/Beispieldateien/DateiExistiert/Fotos_Lehrer/"
'Achtung: Bildpfad relativ angeben
%>
. . . . . . . . . .
<%
UserKennung = RS_Lehrer.Fields.Item("LehrerID").Value
FotoDatei = BildPfad & UserKennung & ".jpg"
'Dateiname aus (relativem) Pfad, LehrerID und .jpg bilden
FotoDateiName = Server.Mappath(FotoDatei)
'relativen Pfad in absoluten Pfad umwandeln, damit das Bild auch gefunden wird
Set DateiObjekt = Server.CreateObject("Scripting.FileSystemObject")
'Objekt für Zugriff auf das Datei- und Ordnersystem des Servers
If DateiObjekt.FileExists(FotoDateiName) Then
'wenn das Foto existiert, soll es als Bildquelle verwendet werden
%>
<td><img src="<% = FotoDatei %>"> </td>
<%
Else
'Foto existiert nicht, d.h. Dummy-Bild verwenden
%>
<%
<td><img src="<%=BildPfad%>_keinbild.jpg"></td>
End If %>
Beispiel (Lehrer-Fotos automatisch berücksichtigen)
Testen
à für Lehrer, dessen Foto noch nicht existiert ein Foto aus Ordner "Alle_Fotos" in den Ordner "Fotos_Lehrer"
kopieren und die ASP-Seite aktualisieren!
4.2 Dynamische Dokument-Links
à ASP-Seite liest alle Dokumente (DOC, PDF, XLS etc.), die sich in einem bestimmten Ordner befinden ein
à aus Dokumentnamen wird automatisch ein Link generiert (ohne Erweiterung)
à deshalb für die zum Download angebotenen Dokumente "sinnvolle" Namen vergeben!
Quellcode
<%
Dim VirtuellerPfad
Dim PhysischerPfad
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
FormularDateiName
DateiName
DateiNameOhneErweiterung
DateiNameMitPfad
SuchText
AnzahlDateien
Laenge
Position
LaengeName
LinkDaten
VirtuellerPfad =
"/Seminarunterlagen/Beispieldateien/Dynamische_Dokument_Links/Download/Formulare_Aktiv/"
PhysischerPfad = Server.Mappath(VirtuellerPfad)
SuchText = PhysischerPfad & "\"
Set OrdnerObjekt = CreateObject("Scripting.FileSystemObject")
Set InhaltOrdnerObjekt = OrdnerObjekt.GetFolder(PhysischerPfad)
AnzahlDateien = 0
For Each FormularDateiName In InhaltOrdnerObjekt.Files
Laenge = Len(FormularDateiName)
Position = Instr(FormularDateiName, SuchText) + Len(SuchText)
LaengeName = Laenge - Position + 1
DateiName = Right(FormularDateiName, LaengeName)
'Dateiname bilden und...
DateiNameMitPfad = VirtuellerPfad & Right(FormularDateiName, LaengeName)
DateiNameOhneErweiterung = Left(DateiName, Len(DateiName) - 4)
'...Namen ohne Erweiterung bilden
LinkDaten = "<br> <a href=" & """" & DateiNameMitPfad & """" & "target=" & """" &
"_blank" & """" & ">" & DateiNameOhneErweiterung & "</a>"
'HTML-Anweisung für Hyperlink bilden...
Response.Write (LinkDaten)
'...und in HTML-Seite ausgeben
AnzahlDateien = AnzahlDateien + 1
Next
If AnzahlDateien = 0 Then
Response.Write ("<BR>Derzeit sind keine Formulare verfügbar!")
End If
%>
Beispiel (Dokumente automatisch in Links umgewandelt)
Testen
à ein Dokument, zu dem noch kein Link existiert, aus Ordner "Alle_Formulare" in den Ordner
"Formulare_Aktiv" kopieren und die ASP-Seite aktualisieren!
4.3 Beziehungen (1:N, N:M)
Problem
à z.B. 1 Lehrer unterrichtet mehrere Gegenstände
à Recordset zeigt für jeden Datensatz immer alle Daten (LehrerID, Name, Gegenstand) an
à Lehrer, der z.B. 4 Gegenstände unterrichtet hat im Recordset 4 Datensätze, d.h. jedes Mal wird seine ID,
sein Name und der Gegenstand angezeigt
à es gibt leider kein Serververhalten für dieses Problem
Tipp
à zuerst aus Recordset (auf Basis der Beziehung) eine dynamische Tabelle erzeugen
à eigenes ASP-Skript entwickeln
à in wiederholtem Bereich (der dynamischen Tabelle) einen "Gruppenwechsel" einbauen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Quellcode (Auszug)
. . . . . . . . . .
<%
Dim AktuellerLehrer
Dim VergleichsLehrer
VergleichsLehrer = ""
'wir beginnen mit dem 1. Lehrer (der gleichzeitig der aktuelle Lehrer ist)
%>
. . . . . . . . . .
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td width="100"><font color="#FFFF00"><strong>Lehrer-ID</strong></font></td>
<td width="250"><font color="#FFFF00"><strong>Lehrer</strong></font></td>
<td width="500"><font color="#FFFF00"><strong>Gegenstand</strong></font></td>
</tr>
<% While ((Repeat1__numRows <> 0) AND (NOT RS_Lehrer_Gegenstaende.EOF)) %>
<%
AktuellerLehrer = LCase((RS_Lehrer_Gegenstaende.Fields.Item("LehrerID").Value))
%>
<tr>
<%
If AktuellerLehrer <> VergleichsLehrer Then
VergleichsLehrer = AktuellerLehrer
'für den nähchsten Durchlauf merken, welcher Lehrer gerade (vorher) bearbeitet wurde
'alles anzeigen
%>
<td width="100"><strong><%= LCase((RS_Lehrer_Gegenstaende.Fields.Item("LehrerID").Value))
%></strong></td>
<td
width="250"><strong><%=(RS_Lehrer_Gegenstaende.Fields.Item("Lehrer_Name").Value)%></strong></td>
<td
width="500"><strong><%=(RS_Lehrer_Gegenstaende.Fields.Item("Gegenstand").Value)%></strong></td>
<%
Else
'nur den Gegenstand anzeigen
%>
<td width="100">&nbsp;</td>
<td width="250">&nbsp;</td>
<td
width="500"><strong><%=(RS_Lehrer_Gegenstaende.Fields.Item("Gegenstand").Value)%></strong></td>
<% End If %>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RS_Lehrer_Gegenstaende.MoveNext()
Wend
%>
</table>
Beispiel (Lehrer und deren Gegenstände – als "normales" Recordset und mit "Gruppenwechsel)
4.4 E-Mails automatisch versenden
4.4.1 CDONT-Mail
CDONT (Collaboration Data Objects for NT)
à Voraussetzung: SMTP (Simple Mail Transfer Protocol) sowohl als Dienst auf Server und in
IIS-Verwaltungstool gestartet
à Objekte befinden sich in der CDONTS.DLL
à Datei CDOVBS.INC in die ASP-Seite mit einbinden
Beispiel (Bestellformular und Bestätigungsmail)
4.4.2 ASP SmartMail
à Voraussetzung: SMTP (Simple Mail Transfer Protocol) sowohl als Dienst auf Server und in
IIS-Verwaltungstool gestartet
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Freeware
à zuerst AspSmartMail.dll mit Regsvr32.exe installieren
à ggf. weitere Installationsanleitungen für Beispiele befolgen
Hilfe und Referenz
à AspSmartMail Objekte sowie Objekt-Struktur
à hier z.B. internes Netz (Loopback-Adapter) 10.0.0.0 (Subnetz 255.0.0.0) für Webs verwendet
à u.a. hat auch Web "seminar2" eine IP-Adresse aus dem 10.0.0.0 Pool (hier: 10.0.0.40)
à vgl. Einstellungen bei Verbindungskontrolle SMTP-Server
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Konfiguration SMTP-Server
à allen Webservern des internen Netzes Senden (und Weiterreichen von Nachrichten) erlauben
à hier z.B. Localhost (127.0.0.0) sowie dem gesamten Netz 10.0.0.0 (vgl. HOSTS-Datei)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Beispiel:
mySmartMail.Server = "seminar2"
'IP-Adresse bzw. Name des Webs in HOSTS-Datei (für lokalen Mailserver)
Alternative
à als Server einen funktionierenden Postausgangsserver angeben
à auf eigenem PC ist dann kein SMTP-Server notwendig!
Beispiel:
mySmartMail.Server = "mgate.chello.at"
'SMTP Postausgangsserver von chello
à möglicherweise rechtliche Probleme, falls das nicht der Server des eigenen Providers ist!!
Beispiel (Bestellformular, Bestätigungsmail mit AGBs als Attachment)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5 Contribute
5.1 Installation
1. Trialversion (Deutsch) installieren
(Zielverzeichnis z.B.: C:\Programme\Macromedia\Contribute\)
2. Patch starten
(Zielverzeichnis z.B.: C:\Programme\Macromedia\Contribute\)
3. Dreamweaver MX Updater für Contribute starten
(Zielverzeichnis z.B.: C:\Programme\Macromedia\Dreamweaver MX\)
5.2 Contribute FAQs – Was geht, was geht nicht?
§ Sinn von Contribute: Aufteilung der Arbeit zwischen Webdesigner / Programmierern auf der einen Seite und
Personen, welche die Inhalte (den Content) zur Verfügung stellen, auf der anderen Seite
§ Contribute zeigt keine Quelltext an à User sieht nur WYSIWYG-Oberfläche, kein Eingriff in Quellcode
möglich
§ Standardmäßig wird gesamter JavaScript-Code, alle Server-Side-Includes sowie PHP, ASP etc. Code
gesperrt
§ Contribute erkennt CSS-Definitionen der Website
§ Contribute funktioniert hinter einer Firewall
§ Contribute unterstützt keine Verbindung zu Proxy-Servern
§ Contribute-User können nicht nur Dreamweaver Webseiten bearbeiten sondern auch Seiten, die mit
Frontpage, GoLive etc. erstellt wurden
§ Contribute-User können ....
§ Seitentitel ändern
§ Hyperlinks einfügen
§ Texte, Tabellen, Bilder einfügen
§ die Meta-Tags keywords und description einfügen
§ Seiteneigenschaften (Titel, Hintergrundfarbe, Schriftfarbe, Darstellung der Links etc.) ändern (bei
vorlagenbasierten Seiten allerdings nur den Titel ändern)
§ bei Vorlagenseiten die Vorlageneigenschaften ändern (z.B. Parameter für optionale Bereiche)
§ Word-, Excel und sonstige Dokumente einfügen (entweder Inhalt oder Link zu Dokument)
§ Contribute-User können NICHT ....
§ Framesets erzeugen
§ JavaScripts für Menüs etc. einfügen
§ Seitenzähler (Counter) einbauen
§ Formulare erstellen / bearbeiten
§ Rolloverbilder einfügen
§ Layer (Ebenen) einfügen oder bearbeiten
§ Java Applets einfügen
§ Dreamweaver Extensions verwenden
§ Dreamweaver Vorlagen erstellen oder ändern
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.3 Sitedefinition
5.3.1 Vorarbeiten
à Lokalen und Remote-Ordner anlegen
Beispiele:
Lokal: C:\_WEB\Contribute_Lokal à lokaler Arbeitsordner für Dreamweaver
(Schule: Z:\_Webs\Contribute_Lokal)
Remote: C:\_WEB\Contribute_Server à hierher verweist IIS
(Schule: Remote Web als Unterordner des Standardwebs (C:\Inetpub\wwwroot\Contribute_Server)
anlegen
Alternativen:
à Remote-Webordner bei eigenem Provider anlegen
à Remote Web bei Free-Webhoster wie z.B. www.heim.at anlegen
à Remote Web auf Schultestserver anlegen
Beispiel für W2000 Server:
IP-Adresse auf Loopback-Adapter: 10.0.0.42
à Eintrag in Hosts-Datei
10.0.0.42
contribute
D:\Daten\HTML\DW\Seminar2\seminar.doc
#Seminar Contribute
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.3.2 Sitedefinition in Dreamweaver
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.3.2.1 Contribute Website mit Dreamweaver verwalten
à bei 1. Aufruf als Administrator einsteigen und Passwort vergeben
(Passwort hier: icom)
5.3.2.1.1 Einstellungen für die gesamte Site
à Ordner "_mm" angelegt à Datei contribute.xml als "HUB-File" (zentrale Datei mit allen wichtigen
Einstellungen für die Contribute-Site) wird erzeugt
à Administrator Kennwort kann geändert werden
Achtung: falls Administrator sein Kennwort vergisst: Datei contribute.xml auf Server löschen und alle
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Einstellungen neu vornehmen!
à entspricht: Einstellungen für gesamte Site / Verwaltung entfernen
à Frühere Versionen: nach jeder Veröffentlichung einer Seite mit Contribute wird die alte Version im Ordner
"_baks" gespeichert
à Dateinamen der alten Versionen: Name.Erweiterung.LfdNr.Zufallscode.bak
à z.B. index.asp veröffentlicht à index.asp.0002.6a25.bak
à Indexdateien: Startseite(n) der Website
Tipp: gleiche Einstellungen wie im IIS verwenden
5.3.2.1.2 Berechtigungsgruppen
à verschiedene User, die Inhalte ("Content") zur Website beisteuern zu Gruppen zusammenfassen
à den einzelnen Gruppen können unterschiedliche Rechte zugewiesen werden
Allgemein
à Beschreibung der Gruppe eingeben
à Startseite, die beim Aufruf der Site für diese Gruppe angezeigt wird, festlegen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Zugriff auf Dateien / Ordner
à Zugriff auf bestimmte Ordner beschränken (Unterordner und Dateien können von Gruppe bearbeitet
werden)
à festlegen, ob User auch Dateien löschen können
Achtung
à Berechtigungsgruppe braucht im entsprechenden Ordner Lese- und ggf. Schreibrechte!
Bearbeitung
à nur Textänderungen oder uneingeschränkte Bearbeitung zulassen
à in Dreamweaver Vorlagen können nur bearbeitbare Bereiche editiert werden!
à Skripts sollten geschützt bleiben!
à fett / kursiv als <strong> bzw. <em> in HTML darstellen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Stile und Schriften
à CSS-Stile der Site können in Menü Stil aufgenommen werden
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Neue Seiten
à festlegen, wie User neue Seiten anlegen können
Tipps
à nur durch Kopie einer bestehenden Seite neue Seite anlegen können bzw.
à den Usern nur bestimmte Vorlagen anzeigen
Neue Bilder
à ggf. Größenbeschränkung einstellen
5.3.3 Sichern der Einstellungen
à Einstellungen werden in Registry gesichert
5.3.3.1 Registry-Eingtrag händisch sichern
à Start / Ausführen / regedit.exe
HKEY_CURRENT_USER\Software\Macromedia\Contribute\Sites
Menü Registrierung / Registrierungsdatei exportieren
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Einstellungen laden à Doppelklick auf *.reg Datei
5.3.3.2 DW-Exporter verwenden
à Gratis Tool zum Export der Dreamweaver und Contribute-Einstellungen aus der Registry
DW-Exporter (Setup)
à sichert Registy-Einträge, Sitedefinitionen und ggf. Seriennummern für Dreamweaver und Contribute
à ermöglicht auch den Import der exportierten Einstellungen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.3.4 Verbindungsschlüssel senden
Sinn
à Personen, die den Content bereitstellen erhalten Zugang zum Server, ohne die Zugangsdaten explizit zu
kennen
à für jede Berechtigungsgruppe einen entsprechenden Schlüssel erstellen
Achtung
à 2 verschieden Mails senden
à eine Mail mit eigentlichem Verbindungsschlüssel (den Zugangsdaten) (als Attachment *.STC)
à das Kennwort für die Verwendung des Schlüssels in einer eigenen Mail senden (bzw. den Usern persönlich
bekannt geben)!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Dreamweaver à
Menü Site / Contribute Site verwalten / Verbindungsschlüssel senden
à Aktuelle Verbindungseinstellung senden / Ja
à Berechtigungsgruppe, deren Zugangsdaten gesendet werden sollen, auswählen
hier z.B. Gruppe "Schulfest"
à Schlüssel als E-Mail senden oder STC-Datei lokal auf Rechner speichern und dann als Attachment an die
Gruppenmitglieder schicken
à Dateiname bildet sich aus Sitename und Berechtigungsgruppe
hier z.B. Contribute-Einfuhrung-Schulfest.stc
à Kennwort für die Verwendung des Verbindungsschlüssels eingeben
hier z.B. "Schulfest"
Achtung
à Kennworte sind case-sensitive, d.h. Groß- und Kleinschreibung werden unterschieden
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.4 Contribute verwenden
5.4.1 Voreinstellungen
Word- und Excel-Dokumente
à gemeint sind Dokumente ab Office 2000
à Einfügen des Inhaltes in die Webseite nur bis zu einer Größe von ca. 300 KB möglich
à Größenangabe bezieht sich dabei auf die Word- / Excel-Datei im HTML-Format
à andere Dokumente (z.B. PDF-Dateien etc.) können nur verlinkt werden
à Word97/Excel97 Dokumente können ebenfalls nur verlinkt werden
à Dateieditoren für diverse Erweiterungen festlegen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à ggf. Firewall einstellen
Achtung
à Contribute kann keine Verbindung zu einem Proxy-Server herstellen!!
5.4.2 Verbindung zum Server herstellen
Menü Bearbeiten / Meine Verbindungen
à Importieren
à STC-Datei mit Verbindungsschlüssel auswählen
à Berechtigungsgruppe, E-Mail-Adresse und Kennwort eingeben
hier z.B.: Gruppe "Schulfest", Kennwort "Schulfest"
à hier werden alle Verbindungen zusammengefasst
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.4.3 Seiten mit Contribute bearbeiten und veröffentlichen
à Seite bearbeiten
à wechselt von Contribute Browser zu Contribute Editor
à nur die für die Berechtigungsgruppe verfügbaren Seiten können bearbeitet werden
à in Vorlagen können nur die bearbeitbaren Bereiche geändert werden
à Veröffentlichen: Seite wird auf Server upgeloadet
à Fehlermeldung, falls die Benutzergruppe keine Berechtigung hat, die Seite zu bearbeiten
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.4.3.1 Word- und Excel-Dokumente
à Datei aus Windows-Explorer mit Maus an die gewünschte Stelle des HTML-Dokuments ziehen
à ggf. entscheiden, ob Inhalt oder Link eingefügt werden soll
5.4.3.2 Gesperrte Dateien bearbeiten
à Seite, an der gearbeitet wird, wird automatisch ausgecheckt (d.h.: für andere User gesperrt)
à nach der Veröffentlichung wird Seite automatisch eingecheckt (d.h. für andere User freigegeben)
à Lock-Dateien haben den selben Namen wie die Originalseite inkl. der Endung ".lck"
à falls Datei von anderem User bearbeitet wird, ist Seite gesperrt
à ggf. E-Mail an anderen User senden, damit die Seite wieder eincheckt wird
à falls Sperrung durch einen (SW- oder HW-) Fehler entstanden ist
à LCK-Datei löschen
à in Contribute-Browser bei URL ".lck" ergänzen
à Datei / Seite löschen
Achtung
à für Löschaktion muss folgende Einstellung für die Benutzergruppe der Website getroffen werden:
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
5.4.3.3 Gelöschte Seite wiederherstellen
à Voraussetzung: Wiederherstellen wurde aktiviert
Menü Datei / Seite löschen / Sicherheitsabfrage bestätigen
à Ansicht aktualisieren
à soeben gelöschte Seite kann natürlich nicht mehr angezeigt werden!
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à Datei / Zurück zu früherer Version ...
à entsprechende Version auswählen und Wiederherstellen wählen
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
6 Exkurs: Ausgewählte Dreamweaver Extensions
6.1 Browser
6.1.1 Browserfenster zentriert auf Bildschirm öffnen / schließen
Erweiterungen: Browser_CenterPopupWindow.mxp / Browser_Super_Close_Window.mxp
à Seite, die zentriert werden soll, erstellen
à hier in Designansicht Befehle / Center Pop Up Window (JavaScript) einfügen
à Fensterbreite und Höhe angeben (für Zentrieren notwendig)
à hier z.B. auch Schließen-Button / Linktext / Bild einfügen:
à Einfügen / Special / Super Close Window
à Seite, von der aus die o.a. Seite aus aufgerufen werden soll, erstellen
à z.B. mit Link (Nowhere) / Verhalten Browserfenster öffnen (hier die gleichen Werte für Breite und Höhe wie
oben angeben)
Beispiel
6.1.2 Browserfenster zeitgesteuert schließen
Erweiterung: Browser_Close_Window_By_Timer.mxp
à als Verhalten einfügen (z.B. für Body – OnLoad)
Beispiel
6.1.3 Browserfenster animieren
Erweiterung: Browser_Animate_Window.mxp
à zuerst z.B. Link in einem eigenen Fenster erstellen à PopUp Window wird öffnet (normal bzw. zentriert)
à Achtung: PopUp muss Resizable sein!
à in PopUp aus Verhalten (für Body OnLoad) Animate Browser Window wählen
à hier die Originalgröße, Zielgröße, Veränderung in Pixel etc. einstellen
Beispiel
6.1.4 Bilder in Browserfenster öffnen
Erweiterung: Open_Picture_Window.mxp
à zuerst Dokument mit Link (Nowhere) anlegen, der z.B. bei Click das Verhalten aufruft
à Verhalten: Fever / Open Picture Window
à Bildgröße, Position des Fensters angeben
à das Picture Window Dokument wird dabei automatisch generiert (document.write)
à d.h. es muss keine entsprechende HTML-Seite existieren
Beispiel (JavaScripts geändert: Fenstertitel und Alt-Tag vorhanden, Picture Window schließt bei Klick auf Bild)
6.1.5 Seite zu Favoriten hinzufügen
Erweiterung: Add_Side_To_Browser_Faves.mxp
Beispiel
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
6.1.6 Text in der Statusleiste
Erweiterung: StatusBarText1.mxp
zuerst Objekt (Link, Formularfeld, Bild etc.) anlegen, das auf Ereignisse reagieren kann
dann Verhalten / Dazdezines / Set the Text of Status Bar
Beispiel
6.1.7 Scrollende Statusleiste
Erweiterung: Browser_Scrolling_Status_Bar.mxp
à Einfügen / Rig Technologies / Rig Technologies
à Geschwindigkeit direkt im Quelltext ändern
Beispiel
6.1.8 Browser Navigation
Erweiterung: HistoryNavigation.mxp
à direkt auf Seite Browser steuern: Zurück / Vorwärts / Aktualisieren
à Einfügen / Goodies / Insert Previous/Next/Refresh
Beispiel
6.1.9 No Way Back
Erweiterung: NoWayBack.mxp
à verhindert ein Zurückblättern auf eine Seite mit Browser History (Back)
à z.B. in Seite mit Bestellformular einbauen
à von Action-Seite kann nicht zurück auf Bestellformular geblättert werden (Doppelbestellungen so verhindert)
à Einfügen / Allgemein / No Way Back
à oder: Befehle / MadCoWWW / Add/Remove No Way Back
Beispiel
6.1.10 Dokument ausdrucken
Erweiterung: Print_Document_From_(Cross)_Browser.mxp
à Verhalten / Print / Cross Browser Print
à für beliebiges Ereignis Dokument ausdrucken
Beispiel
6.2 Formulare
6.2.1 Form Maker
Erweiterung: FormMaker_v1.mxp
Einfügen / Formular / Form Maker
à erzeugt Formular / Feldbeschriftungen / Listenfelder / Namen für Formularobjekte / Buttons etc. für die
häufigsten Anwendungsfälle von Formularen
Beispiel
6.2.2 Länderliste (weltweit) erstellen
Erweiterung: Insert_Countries_(Worldwide)_In_Lists.mxp
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Einfügen / Formular / Super Countries (Formular wird ggf. automatisch miterstellt)
Beispiel (ggf. Ländernamen händisch anpassen)
6.2.3 Datum aus Kalender einfügen
Erweiterung: Calendar.mxp
Beispiel (Original JavaScripts adaptiert: Deutsch, Datumsfeld readonly, Formular in Layer, darin verschachtelt
Kalender Layer)
6.2.4 Credit Card Form Builder
Erweiterung: Credit_Card_FormBuilder.mxp
à Einfügen / Formulare / CreditBuilder
à Formular mit User- und Kreditkarten-Daten erzeugt
Beispiel
6.2.5 Kreditkarten überprüfen
Erweiterung: Validate_credit_Card.mxp
Beispiel (Formular mit Kreditkarten in Listenfeld und Karten-Nummer in Textfeld)
Beispiel (Checkform und Validate Credit Card gemeinsam: JavaScript Code selbst anpassen –
2 Formularüberprüfungen gleichzeitig sind nicht möglich!)
6.2.6 PopUp Confirm Message
Erweiterung: PopUp_Comfirm_Msg.mxp
Über Verhalten einfügen
Beispiel (Formular mit Datensatz à Löschen mit PopUp Message bestätigen; NoWay Back zusätzlich
verwendet)
6.2.7 Formular sicher senden
Erweiterung: Form_security_Avoid_Hacks_And_Unwanted_Submissions.mxp
à verhindert Submit des Formulars durch Hacker von außen
Achtung: funktioniert nur bei ASP-Seiten!
à Serververhalten: P13 Studio à P13 Form Security
Beispiel
6.3 E-Mail
6.3.1 Super E-Mail
Erweiterung: Super_Email.mxp
à Einfügen / Allgemein / Super E-Mail
à E-Mail Link mit Subject, CC, BCC, Body, Statusleistentext für MouseOver, E-Mail vor Robots verstecken etc.
à E-Mail Client (Outlook Express, Outlook etc.) wird gestartet
Beispiel
6.3.2 Uni Mailer (Formular als E-Mail versenden)
Erweiterung: UniMailer.mxp
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
à versendet Formulardaten als E-Mail (mit CDO, ASPMail, ASPEMail etc.)
à Seite mit Formular erstellen (keine Action einstellen)
à Serververhalten Dreamletters / Uni Mailer
Mailer-Komponenten
• CDO (CDONTS) (Collaboration Data Objects NT Server) àmit IIS mitgeliefert
à SMTP Server muss in IIS laufen, SMTP Dienst muss aktiviert werden
à Achtung: Provider fragen, ob diese Technik unterstützt wird!
• ASPEmail à Komponente von Persits Software à wird kommerziell vertrieben (kostenpflichtig)
Beispiel
6.3.3 Visual CDONTS E-Mail
Erweiterung: ASP_EMail_VisualCDonts.mxp
à versendet E-Mail mit ASP Script mit CDONTS
à Symbolleiste ASP / Visual CDONTS
à auch Attachments können mitgeschickt werden (Server.Mappath)
à SMTP Server muss in IIS laufen, SMTP Dienst muss aktiviert werden
à Achtung: Provider fragen, ob diese Technik unterstützt wird!
Tipp:
à Datei "cdovbs.inc" einbinden
à enthält Konstante für CDONTS
Quellcode Auszüge...
<!-- #include file = "cdovbs.inc" -->
......
objMail.BodyFormat = CdoBodyFormatHTML
'---- CdoBodyFormats Values ---'CdoBodyFormatHTML = 0
'Const CdoBodyFormatText = 1
objMail.Body = Nachrichtentext
objMail.MailFormat = CdoMailFormatMime
'---- CdoMailFormats Values ---'CdoMailFormatMime = 0
'CdoMailFormatText = 1
Beispiel (Quellcode angepasst: Nachrichtentext mit mehreren Zeilen, CDOVBS.INC eingebunden)
6.4 Sonstiges
6.4.1 Meta-Tag Generator
Erweiterung: MetaTag_Generator.mxp
à Einfügen / Headtags / Meta Generator
à bzw. Einfügen (Symbolleiste) / Meta Generator
Beispiel
6.4.2 Zentrierte Tabelle
Erweiterung: Insert_Centering_Table_1Row_1Column.mxp
à Einfügen / Centering Table bzw. Einfügen (Symbolleiste) / Special / Centering Table
à generiert 100% breite, hohe Tabelle, horizontal und vertikal zentriert
à für Layout verwenden
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
Tipp:
à vertikal oben zentrieren
à in dieser Zelle Haupt-Layer relativ (!!) positioniert
à Unter-Layer verschachtelt in Hauptlayer (z.B. für Banner, Menü etc.)
à Design mit Layern möglich, die immer oben / zentriert auf Bildschirm erscheinen
à z.B. Design mit Photoshop à Teilgrafiken in die entsprechenden Layer einfügen
Beispiel
6.4.3 Dummy Link Nowhere
Erweiterung: Nowhere_Link.mxp
Einfügen / Nowhere Link
à statt Dummy-Link # verwendet: für Objekte, die auf MouseOver mit Cursor Hand reagieren sollen
à Unterschied zu #: # verzweigt immer zum Beginn der Seite, Nowhere Link nicht!
Beispiel
6.4.4 Hoch- und Tiefstellen von Text, mathematische Sonderzeichen
Erweiterungen: Superscript_And_Subscript.mxp / Symbols_For_Math.mxp / Symbols_For_Writers.mxp
Menü Einfügen / Sonderzeichen
bzw. Symbolleiste Einfügen / Zeichen
Beispiel
6.4.5 Banner Image Builder
Erweiterung: Banner_Image_Builder.mxp
Menü Befehle / Banner Image Builder
à fügt max. 10 verschiedene Bilder als Banner ein
à Zeitverzögerung für Überblendung einstellbar
à jedes Bild sollte gleich groß sein
à für jedes Bild eigener Hyperlink möglich
Beispiel (Banner in eigenem Layer untergebracht à als Vorlage gespeichert à für Sponsoren, aktuelle
Termine der Schule etc. verwendbar)
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
6.4.6 Links überblenden
Erweiterung: Fade_Links.mxp
à Befehle / Scripting / Fade Links
à Links werden bei MouseOver von Originalfarbe zu Zielfarbe übergeblendet
à für einzelne Seite, alle geöffneten Seiten, gesamte Site einstellbar
à Geschwindigkeit des Überblendens einstellbar
Beispiel
6.4.7 Inhaltsverzeichis auf Basis der Überschriften / Top of Page / Link to Anchor
Erweiterung: Create_Index_By_H1-2..Tags.mxp / Top_Of_Page_Link_Text.mxp / Create_Link_To_Anchor.mxp
Befehle / Insert Index
à Erstellt ein Inhaltsverzeichnis für das aktuelle Dokument auf Basis der Überschriften
à z.B. für FAQs geeignet
Einfügen / Top of Page Text
à erzeugt einen Link zu Textmarke (zum Beginn des Dokuments)
à z.B. von einzelnen FAQs zurück zur Fragenübersicht
Einfügen / Goodies / Link to Anchor
à erzeugt Link zu Textmarke im Dokument
à Textmarken werden in Liste angegeben !!!
Beispiel
6.4.8 Visit Counter
Erweiterung: Visit_Counter.mxp
à Besuchszähler wird eingefügt
à entweder pro Seitenaufruf (Reload) oder je Session hochgezählt
Achtung: funktioniert nur bei ASP-Seiten!
à Serververhalten: FELIXONE à Visit Counter
Beispiel
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15
Webanwendungen – ASP - Dreamweaver“
© Mag. Gerhard Buschka – BHAK Wiener Neustadt
7 Didaktische Tipps
Vor Einsatz der Werkzeuge zur Datenbankanbindung sollten bereits folgende Kenntnisse vermittelt worden
sein:
à HTML in Grundzügen
à Formulare und Formularüberprüfung (clientseitige Scripts / Verhaltensweisen)
à VBA (oder andere Programmiersprache) in Grundzügen
à Access (oder anderes Datenbanksystem)
à W2000 und IIS-Kenntnisse
à Client-Server-Konzept
Reihenfolge...
à Vorzeigen – Mitschauen / Mitschreiben bzw. Skriptum ergänzen
à dann Übungen nachmachen lassen
Immer wieder (ASP-) Quellcode analysieren à erleichtert Fehlersuche, falls etwas einmal doch nicht so
funktioniert wie es eigenlich sollte!
Regel für HÜs und HÜ-Webs besprechen!
à dynamische Websites als HÜ sonst nicht mit vertretbarem Aufwand korrigierbar!
à falls Regeln nicht eingehalten à ??? (HÜ nachmachen / wie oft "Fehlversuche" zulassen? / HÜ sofort
negativ?)
à in der Schule entwickelte Lösungen verändert / verfeinert als HÜ aufgeben
à Kontrolle der HÜ: Schüler die (hoffentlich) eigene Lösung erklären / vorzeigen lassen
à erst dann als Mitarbeitsnote werten!
à nur Kopieren der Lösungsdateien von anderen genügt damit absolut nicht!!
à Weiterentwicklung der eigenen HÜ-Lösungen in der nächsten Unterrichtseinheit à zählt auch wieder zur
Mitarbeitsnote
usw.
à aus erstem Lösungsansatz entsteht so schrittweise eine komplexe Gesamtlösung
8 Linksammlung
Linksammlung
D:\Daten\HTML\DW\Seminar2\seminar.doc
© Mag. Friedrich Wannerer
27.11.2005 16:15

Documentos relacionados