Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard...

88
Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15 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

Transcript of Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard...

Page 1: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 2: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 3: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 4: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 5: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

anzeigen". Sie werden sehen, dass die Programmteile verschwunden sind und nur mehr HTML-Tags 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.

Page 6: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 7: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 8: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 9: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 10: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 11: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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")

Page 12: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 13: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 14: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 15: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 16: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 17: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 18: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 19: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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):

Page 20: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à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!

Page 21: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 22: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 23: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 24: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 25: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 26: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 27: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 28: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 29: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 30: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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" %>

Page 31: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

3.3.4.2 ASP-Seiten mit Datenbankanbindung C O D E A U S Z U G (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

Page 32: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!

Page 33: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

1. Variante:

Page 34: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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>

Page 35: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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 HAK-Homepage</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)

Page 36: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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 (') !!

Page 37: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 38: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!

Page 39: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 40: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 41: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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"

Page 42: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 43: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 44: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 45: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 46: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 47: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 48: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!

Page 49: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 50: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 51: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!)

Page 52: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!

Page 53: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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()">

Page 54: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 55: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 56: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 57: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 58: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 59: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

Dim FormularDateiName Dim DateiName Dim DateiNameOhneErweiterung Dim DateiNameMitPfad Dim SuchText Dim AnzahlDateien Dim Laenge Dim Position Dim LaengeName Dim 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

Page 60: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 61: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 62: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 63: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 64: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 65: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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 #Seminar Contribute

Page 66: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

5.3.2 Sitedefinition in Dreamweaver

Page 67: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

Page 68: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 69: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 70: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 71: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

Stile und Schriften à CSS-Stile der Site können in Menü Stil aufgenommen werden

Page 72: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 73: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 74: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)!

Page 75: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 76: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 77: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 78: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 79: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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:

Page 80: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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!

Page 81: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à Datei / Zurück zu früherer Version ...

à entsprechende Version auswählen und Wiederherstellen wählen

Page 82: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 83: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 84: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 85: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

à 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

Page 86: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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)

Page 87: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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

Page 88: Webanwendungen – ASP - Dreamweaver“ · Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich

Webanwendungen – ASP - Dreamweaver“ © Mag. Gerhard Buschka – BHAK Wiener Neustadt

D:\Daten\HTML\DW\Seminar2\seminar.doc © Mag. Friedrich Wannerer 27.11.2005 16:15

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