FrontPage 2002 : professionale Websites entwickeln 3827319021, 9783827319029 [PDF]


156 59 7MB

German Pages 669 Year 2001

Report DMCA / Copyright

DOWNLOAD PDF FILE

FrontPage 2002 : professionale Websites entwickeln
 3827319021, 9783827319029 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

FrontPage 2002

Steffen Kepper Jörg Krause

FrontPage 2002 Professionelle Websites entwickeln

An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam

Die Deutsche Bibliothek – CIP-Einheitsaufnahme Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich.

Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Produkt wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltverträglichem und recyclingfähigem PE-Material. 10 9 8 7 6 5 4 3 2 1 04 03 02 01 ISBN 3-8273-1902-1 © 2001 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: Lektorat: Herstellung: Korrektorat: Satz: Druck und Verarbeitung: Printed in Germany

atelier für gestaltung, niesner & huber, wuppertal Sylvia Hasselbach, [email protected] Anna Plenk, [email protected] Roswitha Leferink, Düsseldorf; Barbara Decker, München mediaService, Siegen freiburger graphische betriebe, Freiburg

Inhaltsverzeichnis Teil I: Einführung und Installation .......................................................15 1

Was ist FrontPage? ...........................................................................................17 1.1 Neu in FrontPage 2002 ............................................................................17 1.1.1 Navigation................................................................................17 1.1.2 Neue Seite oder neues Web......................................................18 1.1.3 Dynamic HTML ........................................................................20 1.1.4 Script Editor..............................................................................20 1.2 Struktur und Aufbau.................................................................................21 1.2.1 Menüsystem .............................................................................21 1.2.2 Der Editorbereich .....................................................................22 1.3 Dialoge ....................................................................................................25 1.3.1 Die wichtigsten Dialogfelder .....................................................25 1.3.2 Grundeinstellungen des Programms .........................................25 1.3.3 Seitenoptionen für ein Web ......................................................26 1.3.4 Basisoptionen eines Webs .........................................................32 1.3.5 Seiteneigenschaften..................................................................35 1.4 Die Komponenten....................................................................................39 1.4.1 Übersicht ..................................................................................39 1.4.2 Umgang mit Komponenten......................................................40

2

Server-Erweiterungen .......................................................................................43 2.1 Vorbereiten der FrontPage-Erweiterung....................................................43 2.1.1 Installation der FrontPage-Erweiterungen..................................43 2.1.2 Upgrade und Kompatibilität FrontPage 2000 zu FrontPage 2002 ........................................................................44 2.2 Konfiguration der FrontPage-Erweiterungen .............................................45 2.2.1 Einen virtuellen Server erweitern ...............................................45 2.3 SharePoint Services ..................................................................................48 2.3.1 Übersicht über die Verwaltungsfunktionen................................48 2.3.2 SharePoint Konfigurationseinstellungen ....................................49 2.3.3 SharePoint-Verwaltung virtueller Server ....................................51 2.3.4 SharePoint Websites und FrontPage..........................................54 2.4 SharePoint-Teamfunktionen .....................................................................55 2.4.1 Listen........................................................................................55 2.4.2 Diskussionsrunden ....................................................................56 2.4.3 Dokumente ..............................................................................56

6

Inhaltsverzeichnis

3

Das Internet und seine Dienste ........................................................................57 3.1 Einführung und Grundbegriffe .................................................................57 3.1.1 Grundlagen und FrontPage ......................................................58 3.1.2 Grundbegriffe...........................................................................58 3.2 Die Internet-Protokolle und ihr Ursprung..................................................62 3.2.1 Die Organisationen ICANN und IANA.......................................62 3.2.2 Das ISO/OSI-Modell und die Internet-Protokolle .......................63 3.2.3 Request For Comments (RFC) ...................................................66 3.2.4 Internetprotokolle im Detail ......................................................67 3.3 Höhere Netzwerkprotokolle......................................................................76 3.3.1 Hypertext Transfer Protocol (HTTP) ..........................................76 3.3.2 File Transfer Protocol (FTP) .......................................................81 3.3.3 Protokolle für E-Mail-Verkehr ....................................................87 3.3.4 Codierungsstandard für E-Mail: MIME ......................................92 3.3.5 Network News Transfer Protocol (NNTP)..................................96

4

Basiswissen Online-Marketing..........................................................................99 4.1 Die Gestaltung von Webseiten .................................................................99 4.1.1 Zehn Regeln für gutes Design ...................................................99 4.2 Online-Marketing ...................................................................................101 4.2.1 Definition ...............................................................................101 4.2.2 Zehn Grundregeln für erfolgreiches Marketing .......................103 4.2.3 Werbung für Online-Angebote ..............................................105 4.2.4 Optimal anmelden .................................................................105 4.2.5 Bannertauschprogramme .......................................................107 4.2.6 Werbenetzwerke.....................................................................108 4.2.7 Attraktive Werbeplätze............................................................108 4.2.8 Kundenbindung .....................................................................109 4.3 Domainnamen .......................................................................................110 4.3.1 Namen im Internet .................................................................110 4.3.2 Alternativen ............................................................................112 4.3.3 Konventionell werben.............................................................113

5

Basiswissen HTML ...........................................................................................115 5.1 Die Sprache des Web – HTML ................................................................115 5.1.1 Einführung in HTML ...............................................................115 5.1.2 Kleine Fallen in HTML .............................................................117 5.2 HTML-Grundlagen .................................................................................119 5.2.1 HTML pur ...............................................................................119 5.2.2 Ein bisschen Farbe ..................................................................120 5.2.3 Text und Layout .....................................................................121 5.2.4 Linien .....................................................................................125 5.2.5 Formatierungen......................................................................126 5.2.6 Sonderzeichen ........................................................................131 5.2.7 Bilder und Hyperlinks einbinden .............................................132

Inhaltsverzeichnis

5.3

5.4

5.5

7

5.2.8 HTML-Formulare ....................................................................139 5.2.9 Aufzählungen und Listen .......................................................147 5.2.10 Tabellen .................................................................................150 5.2.11 Fortgeschrittene Navigation....................................................159 Cascading Style Sheets ...........................................................................166 5.3.1 CSS praktisch anwenden ........................................................166 5.3.2 CSS im Detail..........................................................................169 5.3.3 Selektoren ..............................................................................171 5.3.4 Vererbung, Verschachtelung und Abhängigkeit ......................173 5.3.5 Browserprobleme ...................................................................175 5.3.6 CSS-Praxistipp ........................................................................176 JavaScript ...............................................................................................176 5.4.1 Was ist JavaScript? ..................................................................177 5.4.2 JavaScript verwenden .............................................................177 Dynamisches HTML................................................................................178 5.5.1 Übersicht ................................................................................179 5.5.2 Prinzip ....................................................................................179 5.5.3 Beispiele .................................................................................179

Teil II: Webseiten-Gestaltung mit FrontPage ....................................187 6

Arbeiten mit FrontPage-Webs ........................................................................189 6.1 Ein neues Web erstellen..........................................................................190 6.1.1 Die Webstruktur .....................................................................193 6.2 Die erste Seite ........................................................................................195 6.3 Änderungen am Web vornehmen ..........................................................196 6.3.1 Erstellen neuer Seiten..............................................................196 6.3.2 Erstellen neuer Ordner ............................................................197 6.3.3 Umbenennen von Ordnern und Dateien.................................197 6.3.4 Verschieben und Löschen von Dateien und Ordnern ..............197 6.4 Verwendung von Unterwebs ..................................................................199 6.5 Die Webvorlagen ...................................................................................200 6.5.1 Die Vorlage Leeres Web ..........................................................201 6.5.2 Die Vorlage Persönliches Web.................................................201 6.5.3 Die Vorlage Projekt-Web .........................................................204 6.5.4 Die Vorlage Kundenunterstützungs-Web ................................210 6.6 Die Web-Assistenten...............................................................................213 6.6.1 Der Web-Assistent für Firmenpräsenz im Internet....................213 6.6.2 Der Diskussionsweb-Assistent..................................................225 6.7 Webs importieren und ergänzen ............................................................231 6.7.1 Der Webimport-Assistent ........................................................231 6.7.2 Dateien, Ordner und Webs importieren ..................................235

8

Inhaltsverzeichnis

6.8

6.9

7

Import eines Webs als ein Unterweb.......................................................237 6.8.1 Vorbereitung ..........................................................................237 6.8.2 Ein Unterweb veröffentlichen..................................................238 Konfiguration von Webs .........................................................................240 6.9.1 Allgemeine Optionen..............................................................241 6.9.2 Webparameter........................................................................244 6.9.3 Zugriffsberechtigungen ..........................................................246 6.9.4 Quellcodekontrolle .................................................................247 6.9.5 Erweiterte Verzeichnisstruktur von Webs .................................248

Erstellen und Gestalten von Internetseiten ...................................................251 7.1 Was sind Internetseiten?.........................................................................251 7.1.1 Was ist Hypertext? ..................................................................252 7.1.2 Die Struktur von HTML ...........................................................252 7.1.3 Adressierung von Seiten .........................................................255 7.2 Einstieg in die Seitengestaltung ..............................................................257 7.2.1 Eine neue Seite erstellen .........................................................257 7.2.2 Speichern von Seiten ..............................................................258 7.2.3 Dateitypen in FrontPage .........................................................259 7.3 Seiteneigenschaften ...............................................................................260 7.3.1 Allgemeine Optionen..............................................................261 7.3.2 Hintergrund............................................................................262 7.3.3 Meta-Tags ..............................................................................264 7.3.4 Sprache und Codierung..........................................................269 7.3.5 Arbeitsgruppe.........................................................................270 7.3.6 System- und Benutzervariablen...............................................271 7.4 Text .......................................................................................................271 7.4.1 Besonderheiten von HTML-Text..............................................272 7.4.2 Text eingeben und bearbeiten ................................................274 7.4.3 Absätze und Umbrüche ..........................................................277 7.4.4 Überschriften ..........................................................................280 7.4.5 Zeichenformatierungen ..........................................................281 7.4.6 Zeichenformatierungen ..........................................................286 7.4.7 Spracheinstellungen und Rechtschreibung..............................289 7.5 Grafiken einfügen...................................................................................291 7.5.1 Bilder einfügen .......................................................................292 7.5.2 Die ClipArt-Gallery..................................................................293 7.5.3 Clip Organizer ........................................................................296 7.6 Hyperlinks ..............................................................................................297 7.6.1 Text mit Hyperlinks versehen ..................................................297 7.6.2 E-Mails versenden ...................................................................299 7.6.3 Textmarken ............................................................................300 7.6.4 Hyperlinks an Grafiken ............................................................301 7.6.5 Image Maps ...........................................................................301

Inhaltsverzeichnis

7.7

7.8

9

7.6.6 Rollovers.................................................................................303 7.6.7 Hinter den Kulissen .................................................................304 Seitenvorlagen .......................................................................................306 7.7.1 Vorlagen auswählen ...............................................................307 7.7.2 Neu aus vorhandener Seite .....................................................309 Websites für alle .....................................................................................310 7.8.1 Plattformübergreifende Seitenentwicklung .............................310 7.8.2 Schriftarten.............................................................................312 7.8.3 Browserkompatibilität .............................................................314 7.8.4 Anpassungen für behinderte Internetnutzer ............................317 7.8.5 Hardwarevoraussetzungen......................................................318 7.8.6 Farben ....................................................................................319 7.8.7 Die Geschwindigkeit der Anbindung ......................................321

8

Bilder und Design ...........................................................................................325 8.1 Grundlagen des Designs.........................................................................325 8.2 Bilder in Internetseiten ...........................................................................330 8.2.1 GIF .........................................................................................330 8.2.2 JPEG .......................................................................................333 8.2.3 Andere Formate......................................................................334 8.2.4 Formate im Vergleich..............................................................335 8.3 Bilder vorbereiten und bereitstellen ........................................................336 8.3.1 Bilder digitalisieren .................................................................336 8.3.2 Andere Ressourcen .................................................................337 8.4 Bilder mit FrontPage bearbeiten .............................................................337 8.4.1 Bilder einfügen .......................................................................337 8.4.2 Die Bildeigenschaften festlegen ..............................................338 8.4.3 Bilder in FrontPage bearbeiten ................................................341 8.5 FrontPage-Designs .................................................................................346 8.5.1 Designs zuweisen ...................................................................346 8.5.2 Designs ändern.......................................................................347 8.5.3 Randbereiche definieren .........................................................349

9

FrontPage-Webs veröffentlichen....................................................................351 9.1 Die Fehler-Checkliste ..............................................................................351 9.1.1 Stimmen die Inhalte?..............................................................351 9.1.2 Haben Sie alle rechtlichen Aspekte berücksichtigt?..................355 9.1.3 Ist alles korrekt geschrieben? ..................................................356 9.1.4 Sind alle Seiten verlinkt? .........................................................357 9.1.5 Sind alle Seitentitel richtig benannt? .......................................358 9.1.6 Funktionieren alle Hyperlinks?.................................................359 9.1.7 Welche Schwachpunkte hat Ihr Web? .....................................361 9.1.8 Wie stellen Browser das Web dar?...........................................364 9.1.9 Sind die Seiten bereit für Suchmaschinen?..............................365 9.1.10 Was sagen andere zu Ihrem Web? ..........................................366

10

Inhaltsverzeichnis

9.2

9.3

9.4

9.5 9.6

Seíten für die Veröffentlichung auswählen ..............................................366 9.2.1 Synchronisierung....................................................................367 9.2.2 Seiten zur Veröffentlichung kennzeichnen ..............................367 Das Web veröffentlichen ........................................................................368 9.3.1 Die Daten des Webservers ......................................................368 9.3.2 Optionen für die Veröffentlichung ..........................................369 9.3.3 Server mit Servererweiterungen ..............................................369 9.3.4 Server ohne Servererweiterungen ...........................................370 Andere Veröffentlichungswege...............................................................372 9.4.1 Der Windows-FTP-Client .........................................................373 9.4.2 Andere FTP-Programme..........................................................374 Veröffentlichung auf dem lokalen System ...............................................374 Nach der Veröffentlichung .....................................................................375 9.6.1 Site-Check ..............................................................................375 9.6.2 Anmeldung bei Suchmaschinen..............................................375

Teil III: Fortgeschrittene Webs erstellen ...........................................377 10 Layout und Interaktion ...................................................................................379 10.1 Tabellen .................................................................................................379 10.1.1 Anlegen einer Tabelle .............................................................379 10.1.2 Tabellen bearbeiten ................................................................383 10.1.3 Die Größe von Zellen verändern .............................................386 10.1.4 Tabellen formatieren...............................................................387 10.1.5 Umwandlung von Tabellen und Text ......................................389 10.1.6 Dokumentvorlagen für Tabellen..............................................390 10.2 Formulare ..............................................................................................391 10.2.1 Formulare erzeugen................................................................392 10.2.2 Formulare anpassen................................................................392 10.2.3 Die Formularfelder im Überblick .............................................399 10.2.4 Dokumentvorlagen und Assistenten für Formulare ..................407 10.2.5 Der Formular-Assistent............................................................408 10.3 Frames ...................................................................................................411 10.3.1 Ein Frameset und Seiten anlegen ............................................412 10.3.2 Frames sinnvoll einsetzen........................................................413 10.3.3 Browser ohne Frameunterstützung ansprechen ......................414 10.3.4 Frames teilen und verschachteln .............................................414 10.3.5 Frameeigenschaften anpassen ................................................415 10.3.6 Darstellung der Frames anpassen............................................417 10.3.7 Zielframes für Hyperlinks anlegen ...........................................417 10.4 Listen .....................................................................................................418 10.4.1 Aufzählungen .........................................................................419 10.4.2 Nummerierungen...................................................................420 10.4.3 Definitionslisten ......................................................................421 10.4.4 Listen einsetzen ......................................................................422

erstellt von ciando

Inhaltsverzeichnis

11

11 Stylesheets und Dynamic HTML.....................................................................423 11.1 Stylesheets verstehen .............................................................................424 11.2 Stylesheets verknüpfen und einbetten ....................................................426 11.2.1 Stylesheet-Typen ....................................................................426 11.2.2 Selektoren ..............................................................................427 11.2.3 Externe Stylesheets mit dem Dokument verknüpfen ...............428 11.3 Stylesheets definieren .............................................................................428 11.4 Stylesheets anpassen ..............................................................................430 11.4.1 Zeicheneigenschaften .............................................................430 11.4.2 Absatzeigenschaften ...............................................................432 11.4.3 Rahmeneigenschaften ............................................................433 11.5 Positionierung mit Stylesheets ................................................................435 11.5.1 Relative und absolute Positionierung.......................................435 11.6 DHTML-Effekte .......................................................................................437 11.6.1 Animationseffekte ...................................................................437 11.6.2 Mouseover-Effekte ..................................................................438 11.6.3 Effekte für den Internet Explorer .............................................438 11.6.4 Seitenübergänge ....................................................................440 12 Die FrontPage- Komponenten........................................................................441 12.1 Nutzen und Funktion der Komponenten ................................................441 12.1.1 Komponenteneigenschaften anpassen ....................................443 12.2 Inhaltsverzeichnis ...................................................................................443 12.3 Suchformular .........................................................................................445 12.4 Navigationsleisten ..................................................................................446 12.5 Seitenbanner..........................................................................................448 12.6 Elemente einschließen............................................................................449 12.6.1 Seiten einschließen .................................................................449 12.6.2 Seiten nach Zeitplan einschließen ...........................................450 12.6.3 Bild nach Zeitplan einschließen...............................................451 12.7 Anzeigenwechsler ..................................................................................451 12.8 Hoverschaltfläche ...................................................................................452 12.9 Office-Komponenten..............................................................................453 12.9.1 Office-Tabelle .........................................................................453 12.9.2 Office Diagramm ....................................................................455 12.9.3 Office Pivot Table ...................................................................455 12.10 Weitere Komponenten ...........................................................................456 12.10.1 Zugriffszähler..........................................................................456 12.10.2 Kommentar ............................................................................457 12.10.3 Ersetzen..................................................................................457 12.10.4 Datum und Uhrzeit.................................................................458 12.10.5 Laufschrift...............................................................................459 12.10.6 HTML-Markup ........................................................................460 12.10.7 Java-Applets............................................................................461

12

Inhaltsverzeichnis

12.10.8 12.10.9 12.10.10 12.10.11

Andere Dateiformate einbinden ..............................................462 Video......................................................................................463 ActiveX-Steuerelemente..........................................................464 Entwurfszeit-Steuerelemente...................................................466

Teil IV: FrontPage-Webs erweitern ....................................................469 13 Web-Management mit FrontPage..................................................................471 13.1 Ein Web planen ......................................................................................471 13.1.1 Wieso wollen Sie eine Internetpräsenz errichten? ....................471 13.1.2 Was soll kommuniziert werden?..............................................472 13.1.3 Wer ist die Zielgruppe, wer die Konkurrenz? ...........................472 13.1.4 Wie sollen die Inhalte präsentiert werden? ..............................473 13.1.5 Welche Gestaltungsmittel sind angemessen? ..........................473 13.1.6 Wie sieht die Zeitplanung aus? ...............................................473 13.1.7 Wer arbeitet am Web mit?......................................................474 13.1.8 Welche technischen Erfordernisse gibt es? ..............................474 13.1.9 Welche Kosten verursacht die Web-Site?.................................474 13.1.10 Wie wird die Web-Site bekannt gemacht?...............................475 13.2 Mit der Navigationsansicht arbeiten .......................................................475 13.2.1 Eine Webstruktur erzeugen .....................................................476 13.2.2 Die Ansicht anpassen ..............................................................477 13.3 Aufgabenverwaltung ..............................................................................477 13.3.1 Kategorien..............................................................................478 13.3.2 Kategorien erstellen und verwalten .........................................479 13.3.3 Mehrautorenumgebung .........................................................479 13.3.4 Prüfstatus ...............................................................................480 13.3.5 Aufgaben erstellen ..................................................................480 13.3.6 Berichte ..................................................................................481 13.3.7 Aufgaben erledigen und prüfen ..............................................483 14 Datenbankanbindung und Programmierung ................................................485 14.1 Datenbankpraxis ....................................................................................485 14.1.1 Das Datenbankprojekt ............................................................485 14.1.2 Planung der Datenbankstruktur ..............................................485 14.1.3 Entwurf der Seiten und Formulare ..........................................486 14.1.4 Aktivierung des Datenbankzugriffs ..........................................487 14.1.5 Erweiterung durch Active Server Pages ...................................491 14.2 Datenbankfunktionen im Detail..............................................................493 14.2.1 Verbindung zu einer Datenbank .............................................494 14.2.2 Formulare und Datenbanken ..................................................496 14.3 Umgang mit den generierten Codes ......................................................498 14.3.1 Die Ergebnisseite ....................................................................499 14.3.2 Formularauswertung...............................................................499 14.3.3 Interaktiver Datenbankeditor ..................................................500

Inhaltsverzeichnis

13

15 Programmierung von Webseiten ...................................................................503 15.1 Active Server Pages ................................................................................503 15.1.1 Die Programmierung mit VBScript ..........................................503 15.1.2 Eine Einführung in VBScript ....................................................507 15.1.3 Programmieren mit VBScript ..................................................511 15.2 Übersicht Bibliotheken ...........................................................................515 15.2.1 Zusätzliche allgemeine Bibliotheken........................................515 15.2.2 Objekte des Webservers..........................................................516 15.2.3 Mitgelieferte Komponenten ....................................................517 15.3 Datenspeicherung ..................................................................................526 15.3.1 Kollektionen mit Scripting.Dictionary......................................526 15.3.2 Dateizugriff.............................................................................528 15.4 Webserver-Bibliothek..............................................................................538 15.4.1 Die Objekte Request und Response.........................................538 15.4.2 Daten aus einem Formular entnehmen ...................................540 15.4.3 Daten mit Hilfe des URL übertragen........................................544 15.4.4 Weiterleitung (Redirection) .....................................................545 15.4.5 Wie Sie Sessions benutzen können..........................................546 15.4.6 Applikationen .........................................................................552 15.5 Datenbankzugriff ...................................................................................556 15.5.1 Einführung in ADO .................................................................556 15.5.2 Einführung in SQL ..................................................................558 15.5.3 ADO praktisch verwenden ......................................................575 15.6 Die FrontPage-Skriptbibliotheken ...........................................................584 15.6.1 Übersicht FrontPage-Skriptbibliotheken ..................................585 15.6.2 Die Datei global.asa eines FrontPage-Webs.............................585 15.6.3 Die Formularbibliothek fpdbform.inc ......................................588 15.6.4 Die Datenbankbibliothek fpdblib.inc.......................................590 15.6.5 Die Datenbankbibliothek fpdbrgnX.inc...................................594 15.7 Der Microsoft Skript-Editor .....................................................................601 15.7.1 Übersicht über die Entwicklungsumgebung ............................601 15.7.2 Seiteneigenschaften: Einstellungen für ASP .............................604

Teil V: Anhang ....................................................................................607 A

Die FrontPage-Werkzeuge..............................................................................609 A.1 FrontPage 2002 .....................................................................................609 A.1.1 Standard (Kapitel 1, 6 und 7) .................................................609 A.1.2 Format (Kapitel 7)...................................................................611 A.1.3 Berichte (Kapitel 6) .................................................................612 A.1.4 DHTML-Effekte (Abschnitt 11.4) .............................................612 A.1.5 Formatvorlage (Kapitel 11) .....................................................612

14

Inhaltsverzeichnis

A.1.6 A.1.7 A.1.8 A.1.9

Grafik (Kapitel 8) ....................................................................613 Navigation (Kapitel 6).............................................................614 Positionierung (Kapitel 11) .....................................................615 Tabellen (Abschnitt 10.1) .......................................................616

B

HTML-Referenz ...............................................................................................617 B.1 HTML 3.2...............................................................................................617 B.1.1 HTML 3.2-Elemente................................................................617 B.1.2 Übersicht und Einteilung ........................................................619 B.1.3 HTML 3.2-Elemente................................................................619 B.1.4 Liste der Elemente ..................................................................638 B.2 HTML 4..................................................................................................638 B.2.1 HTML 4 – Einführung .............................................................638 B.2.2 Liste der Elemente ..................................................................639 B.2.3 Neue strukturelle Elemente in HTML 4....................................640 B.3 Cascading Style Sheets - CSS..................................................................646 B.3.1 CSS – Klassenübersicht ...........................................................646 B.3.2 Die CSS-Referenztabellen........................................................647 B.3.3 Weitere Informationen............................................................653

C

Angebote im Internet .....................................................................................655 C.1 Offizielle Web Sites.................................................................................655 C.2 Newsgroups zu FrontPage......................................................................655 C.3 Tipps & Tricks ........................................................................................656 C.4 Englische Web Sites zum Thema ............................................................656 C.5 Themes (FrontPage-Designs) ..................................................................656 C.6 FrontPage-Add-ins..................................................................................657 C.7 Newsgroups zu Internet-Themen ...........................................................657 C.7.1 Deutschsprachige Newsgroups...............................................657 C.7.2 Englischsprachige Newsgroups ...............................................657 C.8 Bildarchive .............................................................................................658 C.8.1 Online-Anbieter ......................................................................658 C.8.2 Anbieter von Clip-Art-Sammlungen ........................................658 C.9 Online-Recht ..........................................................................................658 C.9.1 Newsgroups ...........................................................................658 C.10 Suchmaschinen und Verzeichnisse..........................................................659 C.11 Software und Services ............................................................................659

D

Die Autoren.....................................................................................................661 Stichwortverzeichnis.......................................................................................663

I Einführung und Installation Díe Frage mag Ihnen unsinnig erscheinen. Wer kauft sich schon ein FrontPage-Buch und weiß nicht, was das ist? Die Beantwortung nimmt trotzdem einigen Raum ein. Neueinsteiger erfahren, was sie mit FrontPage machen können und ob der Einsatz für einen bestimmten Zweck lohnt. Umsteiger von der 98er oder der 2000er Version – und solche, die es werden wollen – lernen die Vorteile und Erweiterungen kennen. FrontPage ist ein Werkzeug zur Entwicklung von Hypertext-Systemen, die im Folgenden als Webs bezeichnet werden. Das Programm unterstützt Sie beim Design, bei der Verknüpfung von Seiten und der Erstellung des Layouts. Es existieren Hilfsmittel zur Kontrolle auf fehlerhafte Verknüpfungen, der Versionskontrolle und zum Upload der Daten auf einen Server. Nicht zuletzt unterstützt FrontPage die Entwicklung von Skripten – sowohl auf dem Server als auch für den Browser.

erstellt von ciando

FrontPage ist ein komplexes Autorenwerkzeug, das sich vielfältig in die Microsoft Office Umgebung einklinkt. Viele Dialoge sind vereinheitlicht und teilweise mit anderen Programmen identisch. Entsprechend können sich Einstellungen in FrontPage auch auf andere Teile der Office-Suite auswirken, auch auf den Internet Explorer. FrontPage und der Internet Explorer Die Betrachtung der fertigen Seiten wird in aller Regel mit dem Internet Explorer erfolgen. An dieser Stelle sei gleich gesagt, dass Sie auf jeden Fall auch den Netscape Navigator installieren sollten, um Ihre Layouts auf „Browserfestigkeit“ zu prüfen. Trotzdem ist der Internet Explorer ein wesentlicher Bestandteil der Entwicklungsumgebung. Auf die Besonderheiten im Umgang wird in den entsprechenden Abschnitten hingewiesen.

1

Was ist FrontPage?

1.1

Neu in FrontPage 2002

Wenn Sie bereits mit FrontPage 2000 gearbeitet haben, werden Sie sich sicherlich sehr gut zurechtfinden in FP 2002. Die Bedienung ist grundsätzlich gleich geblieben wurde und lediglich den neuesten Windows-Versionen angepasst. Der Schritt von FP 98 nach FP 2002, in dem die beiden Komponenten FrontPage Editor und FrontPage Explorer zu einem einzigen Programm zusammengefasst wurden, war wesentlich umfangreicher und mit größerem Aufwand an Umstellung verbunden. Das Arbeiten mit FP 2002 ist im Prinzip genau gleich geblieben. Die neue Version hat an Umfang zugelegt. So gibt es beispielsweise noch das eine oder andere Design (früher: FrontPage Themen) mehr zur Auswahl und einige neue Servererweiterungen. Am auffälligsten ist sicherlich das neue Wording in der deutschen Version von FrontPage 2002. Die Benennung von Menüpunkten, Schaltflächen, Funktionen etc. hat sich in der neuen Version an vielen Stellen geändert, was oft von zweifelhaftem Nutzen ist. Es heißt nun zum Beispiel „Grafik“, was vorher „Bild“ hieß und aus „Spread Sheet“ wurde die „Office-Tabelle“. Gemeint ist natürlich nach wie vor dasselbe.

1.1.1

Navigation

Die Navigation zwischen den einzelnen Bearbeitungsfenstern erfolgt über die graue Werkzeugleiste ANSICHTEN an der linken Seite: 왘 Seite. In dieser Ansicht bearbeiten Sie die Seite in zwei Modi (Im WYSI-

WYG1-Editor oder im HTML-Quellcode). Eine dritte Ansicht bietet eine Vorschaufunktion. Der Wechsel erfolgt mit drei Registerkarten im Bearbeitungsfenster:

왘 Ordner. Diese Ansicht zeigt alle Ordner Ihres Projekts an und erlaubt die

Navigation. 왘 Berichte. In dieser Ansicht können Sie sich die Ergebnisse der verschiede-

nen Berichte anschauen. Berichte bieten eine gute Unterstützung für die Fehlersuche.

1. WYSIWYG = What You See Is What You Get

17

1 Was ist FrontPage? 왘 Navigation. Wenn Sie Webseiten mit den Navigationselementen von

FrontPage aufbauen, können Sie hier die Navigation grafisch entwerfen. 왘 Hyperlinks. Alle Hyperlinks der Site finden Sie in der dieser Ansicht. Ein

gutes Werkzeug zur Fehlersuche. 왘 Aufgaben. Ob im Team oder alleine: Definieren Sie alle Aufgaben, und

schon verfügen Sie über ein einfaches, aber leistungsfähiges Projektmanagementwerkzeug.

1.1.2

Neue Seite oder neues Web

Die Schritte zum Öffnen neuer Seiten oder ganzer Webs sind in FrontPage 2002 neu angeordnet. Ob Sie nur eine leere neue Seite anlegen wollen oder ein ganzes Web mit Hilfe eines Assistenten – alles das geht über das Menü DATEI | NEU | SEITE ODER WEB. Abbildung 1.1: Neue Seite oder Web im zweiten Untermenü

Es öffnet sich ein Fenster, im Aussehen ganz den neuesten Windows-Versionen entsprechend. Hier finden Sie auf einen Blick unter anderem die zuletzt aufgerufenen Seiten, die Vorlagen für eine leere Seite oder ein leeres Web und die Links auf eigene und vorgegebene Seiten- und Webvorlagen.

18

Neu in FrontPage 2002 Abbildung 1.2: Das Fenster „Neue Seite oder neues Web“ – mit neuem Gesicht

Bereits das Fenster für die Seitenvorlagen beispielsweise kommt dann aber wieder im altbekannten Windows-Gewand. Man ist sich offenbar noch nicht vollständig im Klaren darüber, ob das neue Layout gut oder schlecht ist. Bei FrontPage dürfen Sie es sich aussuchen, hier gibt es beides. Abbildung 1.3: Das Fenster „Seitenvorlagen“ – Altbekanntes

19

1 Was ist FrontPage?

1.1.3

Dynamic HTML

Die direkte Unterstützung für Dynamic HTML gibt es seit FrontPage 2000. Dabei werden allerdings bei weitem nicht alle Möglichkeiten ausgereizt, die DHTML bietet. Die einstellbaren Effekte beschränken sich auf die Animation von Elementen oder der gesamten Seite. Hervorzuheben ist die Unterstützung beider Browser – die Animationen laufen auch auf Netscape Navigator (ab Version 4). Browser mit der Versionsnummer 3 oder kleiner stellen die Elemente statisch dar. Abbildung 1.4: Funktionsleiste für DHTML-Effekte

Die Effekte werden in externen JavaScript-Dateien zur Verfügung gestellt und mit

Neues Fenster!

Fenster zu!

Listing 5.50: Fenster können Sie nur mit JavaScript wieder schließen

Je nach Browser muss das Schließen des Fensters bestätigt werden. Beachten Sie, dass der Nutzer sich möglicherweise nicht daran hält und alle geöffneten Fenster offen lässt und dadurch Layout und Organisation stört. Abbildung 5.18: Alle Macht liegt beim Nutzer. Ohne Sicherheitsabfrage wird das oberste Fenster nicht geschlossen.

Teile und herrsche! Framesets



Sie sehen praktisch in Echtzeit, wie die Schleife arbeitet und Wert für Wert im Browser erscheint. Die innere Schleife bremst etwas und gibt Punkte aus, um die Ausgabe besser zu veranschaulichen. Mit dem Beispiel kennen Sie schon die erste Methode des Objekts: Write. Spannend ist immer die Abfrage von Servervariablen, teilweise werden wertvolle Informationen vom Browser geliefert. Versuchen Sie:

Setzen Sie für „variable“ eine der folgenden Zeichenketten ein. Nicht alle Werte werden für die praktische Programmierarbeit wirklich benötigt. Die wichtigsten sind: 왘 HTTP_REFERER

Wenn Ihre Seite durch Anklicken eines Hyperlinks auf einer anderen Seite erreicht wurde, enthält diese Variable die URL der Seite, von der der Nutzer kam. Oft sind es Suchmaschinen wie YAHOO!. Die Auswertung gibt wertvolle Hinweise, wer Ihre „heimlichen Werbeträger“ sind. 왘 HTTP_USER_AGENT

Der Typ des Browsers wird angezeigt. Sie können auswerten, welche Browser Ihre Nutzer bevorzugen, und die Gestaltung der Seiten daraufhin ausrichten. 왘 REMOTE_ADDR

Dieses Feld enthält die IP-Adresse, mit der der Browser die Verbindung hergestellt hat. Daraus können Sie mit Hilfe eines Domainname-Servers (DNS) die Domain rekonstruieren. Bedenken Sie aber, dass große Onlinedienste und Provider IP-Adressen dynamisch vergeben und derselbe Nutzer jeden Tag eine andere Nummer haben kann. Sie können aber die Class-B- und -C-Netze auswerten und feststellen, ob häufiger von T-Online oder AOL aus zugegriffen wird. 왘 QUERY_STRING

Diese Variable enthält die Zeichenkette nach dem Fragezeichen, dem Trennzeichen für die Übertragung von Parametern zum Server. Die Verwendung lernen Sie bei der Übergabe von Formulardaten kennen. 왘 SCRIPT_NAME

Dies ist der virtuelle (relative) Pfad der aktuellen ASP-Seite. Damit können Sie Seiten automatisch mit sich selbst referenzieren, ohne den Stand-

539

15 Programmierung von Webseiten

ort zu kennen. Diese Funktion ist wertvoll, wenn Sie Skripten schreiben, die Sie verkaufen möchten und die auf jedem Webserver ohne Änderungen arbeiten sollen. 왘 SERVER_NAME

Der Name des Webservers oder die IP-Adresse. 왘 PATH_TRANSLATED

Der physische Pfad des ASP-Skripts auf der Festplatte des Webservers.

15.4.2

Daten aus einem Formular entnehmen

Der einzig mögliche direkte Weg in HTML, über den Informationen vom Nutzer zu Ihrer Datenbank gelangen, führt über HTML-Formulare. Erinnern Sie sich an die Art und Weise, wie HTML die Formulare verarbeitet. Die Elemente eines Formulars bestehen aus einem Typ (Texteingabefeld, Kontrollkästchen usw.), einem Namen des Elements und einem bestimmten Wert, der vorgegeben wird und vom Nutzer verändert werden kann. Das Abfragen der Felder eines Formulars kann in FrontPage 2002 mit dem WebBot BESTÄTIGUNGSFELD erfolgen. Allerdings ist die Funktion primitiv und auf FrontPage-Erweiterungen im Server angewiesen. Wie kann man nun den Inhalt von HTML-Formularen mit Active Server Pages auswerten? Nach dem Erstellen des Formulars geben Sie im -Tag das Skript an, mit dem die Auswertung erfolgt. In FrontPage wählen Sie im Dialogfeld FORMULAREIGENSCHAFTEN die Schaltfläche OPTIONEN... Im Formular fügen Sie ein Feld mit dem Namen „Vorname“ ein. Der Umgang mit Formularfeldern selbst ändert sich bei der Nutzung von Skripten nicht, Sie können die FrontPage-Funktionen wie gewohnt einsetzen. Abbildung 15.1: ASP-Skript zur Auswertung eines Formulars angeben

540

Webserver-Bibliothek

Benutzt werden die bereits vorgestellten Request-Objekte. Das Übertragen des Formulars mittels HTTP nutzt den Prozess Request (Anforderung) dieses Protokolls. Das ASP-Objekt Request enthält eine Kollektion, mit deren Hilfe sich die Daten leicht auswerten lassen. Die Kollektion besteht immer aus einem Wertepaar. Im Fall der hier benutzten Formkollektion besteht das Paar aus dem Namen des Elements und seinem Inhalt. In der HTML-Ansicht können Sie sich davon überzeugen, ob der Befehl korrekt eingetragen wurde:

Testen Sie den folgenden Quelltext als „Antwortseite“ (ANTWORT.ASP):

Willkommen!

Hallo . Danke für die Registrierung!

Grundsätzlich besteht jedoch keine Möglichkeit Daten mit dieser Methode auf einer Seite einzugeben und dann sofort auszuwerten. Formulare müssen immer gesendet und dann der nächsten Seite übergeben werden. Manchmal kann es stören, die Abfrage der Inhalte auf so direktem Wege vornehmen zu müssen. Andererseits beeindruckt die Einfachheit, mit der Informationen übertragen werden können. Felder mit mehreren Werten Oft können Dialoge stark vereinfacht werden, wenn die Nutzer mehrere Optionen gleichzeitig auswählen können. Ein beliebtes Beispiel ist die Auswahl aus einem Listenfeld. Der folgende Quellcode zeigt mögliche Eintragungen eines Newsdienstes, von denen einer oder auch mehrere Einträge ausgewählt werden können. Schauen Sie sich zunächst das Formular an, mit dem die Daten abgefragt werden:

Bestellung Newsservice mit Listbox

Bestellung Newsservice

Sportinformationen Regionalinfo Börsenticker Internet Nachrichten Klatsch und Tratsch



541

15 Programmierung von Webseiten

Die Auswertung ist sehr einfach, denn Sie können die Methoden der Formkollektion anwenden. Jedes multiple Element bildet eine solche Kollektion. Hier ist der Quellcode für das Skript register.asp:

Ihre Bestellung

Vielen Dank für Ihre Bestellung.

Sie haben Dienste abonniert:



Es werden die in den -Tags übergebenen Werte ausgegeben. Wenn Sie keine direkte Ausgabe planen, benötigen die Werte zur weiteren Verarbeitung in Variablen keine langen Beschreibungen. Textfelder abfragen Sehr häufig werden Formulare mit einem allgemeinen Textfeld beendet, in dem der Nutzer einen Kommentar zu Ihrer Webseite unterbringen kann. Auch Anzeigensysteme nutzen das HTML-Element zur Erfassung längerer Texte. Die Übertragung solcher Elemente nach VBScript ist sehr einfach, denn VBScript kennt keine enge Begrenzung der Zeichenkettenlänge. Theoretisch können Zeichenketten bis zu 2 Milliarden Zeichen (2 GByte) enthalten – sicher genug, um auch riesige Textfelder aufzunehmen.

Bitte schreiben Sie uns Ihre Meinung:



Daten per Formular übertragen Wenn Formulare aufgebaut werden, können Sie die Gelegenheit nutzen und andere im Skript erzeugte Daten übertragen. Vor allem bei komplexen Anwendungen können Skripten so von mehreren anderen Stellen aus aufgerufen werden. Die Übergabe bestimmter Variablen steuert dann die Skripten. Da auch globale Variablen sich nur auf den aktuellen Skript beziehen und Datenbanken nicht immer sinnvoll oder möglich sind, ist eine solche Alternative gefragt, die kleinere Datenmengen leicht überträgt.

542

Webserver-Bibliothek

In HTML gibt es dafür den Tag . Dieses Feld wird nicht angezeigt, der darin festgeschriebene Wert wird trotzdem wie jeder andere Feldname übertragen. Sie können solche Felder im Dialog FORMULAREIGENSCHAFTEN erzeugen. Klicken Sie auf die Schaltfläche ERWEITERT... und geben Sie Namen und Werte für das Feld ein. Statt der Werte können Sie im Quellcode später Skriptfragmente einbauen. Abbildung 15.2: Versteckte Felder bequem per Dialog erzeugen

Erzeugt wird mit diesem Dialog HTML-Code, der etwa folgendermaßen aussieht:

Der folgende Code zeigt eine umfangreichere Anwendung:

Woher haben Sie von uns gehört?

Sagen Sie uns, wie Sie auf uns aufmerksam wurden:



Zeitungsanzeige


Fernsehspot


Trikotwerbung




Im Beispiel wird der Wert „advertising“ dem Feld survey zugewiesen. Landen mehrere Formularseiten auf der gleichen Antwortseite, können Sie die Herkunft damit unterscheiden. Zusätzlich lassen sich so auch anderswo im Skript erzeugte Daten zwischen den Seiten übertragen. Die Auswertung erfolgt mit der normalen Abfrage von Formularfeldern, wie zuvor schon beschrieben – nutzen Sie das bereits gezeigte Skript register.asp.

543

15 Programmierung von Webseiten

Die Übertragung der Formularwerte und -namen findet im HTTP-Header statt. Die verantwortliche Methode in HTML heißt „post“ (deutsch: veröffentlichen im Sinne von senden); sie wird über gestartet. Um die Zeichen auch unabhängig von den Formular- und Request-Befehlen codieren und decodieren zu können, kennt VBScript spezielle Funktionen. Dies gilt auch für die zweite Methode, GET, mit der Daten an die URL angehängt werden.

15.4.3 Server .HTMLEncode

Daten mit Hilfe des URL übertragen

Wenn Sie HTML-Codes anzeigen möchten, können Sie die Methode Server.HTMLEncode benutzen. Als Parameter wird eine Zeichenkette erwartet, die umgewandelt zurückgegeben wird. Die Anwendung ist immer dann gegeben, wenn Sie erwarten, dass die Zeichenkette HTML-Tags enthält, diese Tags auf dem Browser jedoch nicht ausgeführt werden sollen. Das folgende Listing zeigt eine entsprechende Anwendung:

Ausgabe 1:


Ausgabe 2:


Server .URLEncode

Ganz ähnlich arbeitet die Methode Server.URLEncode, mit der die Codes so erzeugt werden, als würde die Zeichenkette über die URL übertragen werden. Damit ist es möglich, auch Werte aus normalen Variablen mit zu übertragen und auszuwerten. Der folgende Abschnitt erklärt, wie Daten auch ohne Formulare zwischen Webseiten ausgetauscht werden können. Auch hier werden Methoden des Objekts Request benutzt.

Einfache Variablen-/Wertepaare

Formulare sind auffällige Erscheinungen auf einer Webseite. Manchmal ist ein Hyperlink zur Navigation sinnvoller oder technisch einfach unumgänglich. Der folgende Hyperlink wurde um Variablen-/Wertpaare verlängert: http://www.seite.de/scripte.asp?variable1=Wert1&variable2=Wert2

Drei spezielle Zeichen finden dabei Verwendung. Das Trennungszeichen zwischen dem URL und den angehängten Parametern ist das Fragezeichen. Jedes einzelne Wertepaar wird mit einem &-Zeichen getrennt. Zwischen Variable und Wert steht ein Gleichheitszeichen. Sie können theoretisch beliebig viele Werte übertragen. Beachten Sie aber, dass die Browser ganz unterschiedliche Längen für die komplette URL akzeptieren. Der Internet Explorer akzeptiert ca. 2.000 Zeichen. Request.QueryString

544

Die Auswertung wird mit der Methode Request.QueryString vorgenommen. Diese Methode extrahiert die einzelnen Werte aus dem URL. Schauen Sie sich ein kleines Beispiel an, das zur Bestellung von Büchern dient (Haben Sie den Schriftsteller erkannt?):

Webserver-Bibliothek

Was möchten Sie bestellen?

Willkommen in unserem Buchladen Ihre Bestellung bitte:

Der Unbesiegbare

Der Schnupfen

Sterntagebücher

Eden

Jeder Link führt auf die Seite weiter.asp, wo die Bestellung ausgewertet wird. Den Quelltext finden Sie hier:

Ihre Bestellung

Willkommen in unserem Buchladen Sie haben das Buch

von Stanislaw Lem bestellt. Vielen Dank!

Wenn Sie beliebige Werte übertragen möchten, muss jeder einzelne Wert in die URL-Form gebracht werden. Das erste Beispiel arbeitet auch ohne URL Encode, denn es werden keine speziellen Zeichen übermittelt. Um Fehlern vorzubeugen, sollten Sie aber immer mit URLEncode arbeiten.

15.4.4

Weiterleitung (Redirection)

Suchmaschinen versuchen heutzutage alles, um jede greifbare Information zu bekommen. Dazu werden so genannte Robots oder Spider verwendet, kleine Programme, die HTML-Seiten durchsuchen und indizieren. Solche Programme verfolgen auch Links und nehmen normalerweise Ihr gesamtes Web auf. Dabei kann es vorkommen, dass Seiten im Index der Suchmaschine

Response.Redirect

545

15 Programmierung von Webseiten

stehen, die potenzielle Nutzer eigentlich auf so direktem Wege nie erreichen sollten. Sie müssen dann dafür sorgen, dass der verlorene Surfer wieder auf den rechten Pfad zurückgeführt wird. Mit ASP ist das sehr einfach. Wenn Sie eine Registrierungsseite haben und jemand zufällig auf der Antwortseite zur Registrierung landet, dann senden Sie ihn direkt zum eigentlichen Formular zurück:

Registrierung erfolgreich

Danke für die Registrierung!

Beachten Sie, dass die Anweisung zum Umleiten noch vor dem ersten HTML-Befehl steht. Sie können mit diesem Befehl auch jede andere Seite im Internet erreichen. Normalerweise sollte das so funktionieren, dass der Nutzer die Umleitung nicht bemerkt.

15.4.5

Wie Sie Sessions benutzen können

Wann Sessions angewandt werden Neben der reinen Interaktivität, das heißt der Reaktion des Webservers auf Eingaben der Nutzer, sind oft auch länger zurückliegende Informationen über die Surfer sinnvoll zu gebrauchen. So könnte eine intelligente Webseite die persönlichen Interessensgebiete speichern und News entsprechend auswählen. Der Besucher wird stärker an das Angebot gebunden, wenn er bei seinen Besuchen persönlich angesprochen wird. Ein anderes Problem ist die statistische Auswertung der Bewegung der Surfer über Ihre Seiten. Auch diese Informationen lassen sich mit der Hilfe von Sessions speichern. Der Vorteil, vor allem für kleinere Projekte, ist der mögliche Verzicht auf Datenbanken. Prinzipiell funktionieren alle diese Anwendungen auch oder besser mit Datenbanken; nur für die Speicherung der Lieblingsfarbe ist der Aufwand und die daraus resultierende Serverbelastung nicht gerechtfertigt. Warum Sessions sinnvoll sind

546

Sessions haben ihren Ursprung in Begrenzungen des HTTP-Protokolls. Dieses Protokoll, dass die Verbindung von Webserver und Browser steuert, ist ein so genanntes verbindungsloses oder statusloses Protokoll. Für jedes einzelne Objekt, jede Seite, jedes Plug-In wird immer wieder erneut eine Verbindung aufgebaut. Der Webserver kann also in größeren Abständen zugreifende Nutzer nicht wieder zuordnen. Er liefert nur Daten an irgend-

Webserver-Bibliothek

welche immer wieder und irgendwann anfordernde Browser. Alle Interaktionen beruhen auf einem primitiven Frage-Antwort-Spiel (Request and Response). Sessions lösen dieses Problem, indem Sie einen Status über mehrere Webseiten mitführen und die von HTTP nicht unterstützten Informationen speichern. Gelegentlich werden Sie Berichte finden, in denen vor der Verwendung von Sessions gewarnt wird. Deshalb möchte ich hier die technischen Hintergründe erläutern, um die Entscheidung für oder wider Sessions transparent zu machen. Das Session-Objekt, auf dem alle Methoden und Eigenschaften aufbauen, kann selbst keine Daten speichern. Sessions nutzen Cookies zur Speicherung der Informationen. Cookies werden im folgenden Abschnitt ausführlich erklärt, denn ihr Verständnis ist für den Umgang mit dem Objekt Session sinnvoll.

Pro und Contra Sessions

Cookies als Informationsspeicher Cookies (deutsch: Kekse) haben einen völlig irreführenden, harmlosen Namen. Aber sie sind bekannt und oft verteufelt als der Angriffspunkt des bösen Hackers aus dem Web, der sich an den privaten Dateien der Surfer zu schaffen machen will. Cookies wurden von Netscape erfunden und sind seit der ersten Version ihres Browsers Navigator dabei. Später wurde daraus ein Standard, der auch vom World Wide Web Consortium W3.ORG unterstützt wird. Die meisten Browser unterstützen heute Cookies.

Wo kamen die Cookies her?

Cookies sind eine oder mehrere Dateien, die der Browser anlegt und in denen (und nur in denen) der Server auf Wunsch Informationen unterbringen und wieder auslesen kann. Der Sinn von Cookies ist die Wiedererkennung des Nutzers bei einer späteren Session. Cookies lösen also ein gravierendes Problem des HTTP-Protokolls. Cookies können temporär sein, also am Ende einer Session wieder gelöscht werden, andere sind permanent und werden nie oder sehr viel später gelöscht. Cookies werden zwischen Server und Browser durch HTTP-Header übertragen. Durch Senden eines Set-Cookie-Headers wird ein Cookie in der CookieDatei erzeugt. Soll beispielsweise der Name eines Nutzers gespeichert werden, sieht der zugehörige Header folgendermaßen aus:

Die Technik der Cookies

Set-Cookie: UserName=Roger+Waters; path=/ ; domain=comzept.de; expires=Tuesday, 01-Jan-99 00:00:01 GMT

Der neue Eintrag in der Cookie-Datei wird jetzt erstellt. Das Pluszeichen zwischen Vor- und Zuname deutet darauf hin, dass die Datei URL-codiert ist. Die Variable path schränkt die Rückgabe des Eintrages auf Seiten ein, die von dem benannten Pfad aus anfragen. Mit domain wird die Rückgabe auf die angegebene Domain eingeschränkt. Server, die aus anderen Domains das Cookie abfragen, erhalten keine Antwort. Das ist auch der Grund, warum fremde Server Einträge wirklich nicht lesen können. expires gibt das Datum an, an dem der Eintrag ungültig und vom Browser gelöscht wird. Aller-

547

15 Programmierung von Webseiten

dings kann der Browser den Eintrag auch schon früher löschen, wenn die Datei zu groß wird. Der Cookie wird, wenn Domain und Pfadangabe stimmen, nun in jede Anfrage eingebaut, die der Browser an den Server stellt. Für jedes Verzeichnis im Webserver können Sie also eigene Cookies erzeugen. Cookies erzeugen und lesen

Cookies werden direkt von ASP unterstützt. Das Response-Objekt enthält eine Kollektion Cookies; daraus kann ein Cookie-Objekt und ein CookieDictionary erzeugt werden. Dictionaries sind Speicherobjekte vom Typ Dictionary, die Paare aus Schlüssel und Wert speichern:

Response.Cookies

Die etwas abenteuerlich anmutende Schreibweise zum Setzen des Verfallsdatums und der anderen Eigenschaften resultiert aus der Tatsache, dass der Eintrag (das Cookie) selbst ein Objekt, Expires die entsprechende Eigenschaft ist. Sie müssen das Datum nur dann angeben, wenn das Cookie länger als eine Session gespeichert werden soll. Für eine Warenkorbfunktion wäre es also nicht unbedingt erforderlich. Cookies werden über HTTP-Header übertragen. Es ist deshalb notwendig, diesen Code an den Anfang des Skripts vor der ersten Ausgabe zu stellen. Folgende Eigenschaften können Sie benutzen: 왘 Path

Damit wird angegeben, wann der Browser das Cookie sendet. Wenn Sie ein Unterverzeichnis /SCRIPTS haben und der Aufruf von einer Seite in diesem Verzeichnis kommt, wird der Cookie gesendet, sonst nicht. 왘 Domain

Damit wird die Domain angegeben, aus welcher der Aufruf kommen darf. Damit wird das Auslesen fremder Cookies verhindert. 왘 Expires

Gibt das Verfallsdatum des Cookies an. 왘 Secure

Wenn der Webserver den Secure Socket Layer (SSL) unterstützt, wird die Transaktion mit einer sicheren Übertragung ausgeführt. Sie können ein Cookie leicht wieder lesen. Dazu wird das schon bekannte Request-Objekt benutzt:

548

Webserver-Bibliothek

Wie bei allen regulären Objekten, die eine Kollektion bilden, kann auch hier wieder mit einer Schleife auf alle Cookies zugegriffen werden. Wollen Sie sich über den Begriff Cookie keine Gedanken machen, verwenden Sie besser die in ein eigenes Modell integrierten Sessions. Wegen der komfortablen Arbeitsweise sind Sessions immer vorzuziehen. Indes dürfen Sie nicht vergessen, dass Session-Objekte intern auf Cookies zurückgreifen. Manchmal sind Cookies nicht erwünscht. ASP Session-IDs benutzen generell Cookies, also auch dann, wenn Sie gar keine Variablen gesetzt haben. Wenn ein Benutzer die Sicherheitseinstellungen im Browser so gewählt hat, dass vor eintreffenden Cookies gewarnt wird, kann dies ausgesprochen lästig sein. Möglicherweise verlieren Sie Benutzer. Sie können die folgende Serverdirektive verwenden, um die Anwendung von Sessions und damit die Verwendung von Cookies grundsätzlich zu verbieten. Sie müssen diesen Eintrag auf jeder Seite vornehmen:

Darüber hinaus beschleunigt die Verwendung dieses Befehls die Abarbeitung der Skripte. Auch wenn es keine Rolle spielt, ob Cookies verwendet werden oder nicht, ist es sinnvoll, die Verarbeitung zu unterdrücken, wenn Sie die Funktion nicht ausdrücklich benötigen. Wenn Sie bisher HTML-Seiten mit JavaScript programmieren, werden Sie auch dort vielleicht bereits mit Cookies gearbeitet haben. Die von JavaScript browserseitig generierten Cookies unterscheiden sich grundlegend von den vom Server gesetzten und lassen sich nicht austauschen oder gegenseitig beeinflussen. Ereignisse beim Start und Ende von Anwendung und Sitzung Windows-Programmierer mögen sich vielleicht schon gefragt haben, wo denn die Ereignissteuerung stattfindet. Die Interaktion findet nicht über Ereignisse statt, sondern über Protokolle. Trotzdem gibt es zwei Ereignisse, die stattfinden und die auch ausgewertet und bedient werden können, wenn sie ausgelöst werden: der Beginn und das Ende einer Session. In jedem Web, das heißt in jedem virtuellen Server, gibt es die Möglichkeit, diese Ereignisse mit einem besonderen Skript zu steuern. Der Status wird auch dadurch deutlich, dass diese Skriptdatei eine spezielle Endung hat. Sie heißt GLOBAL.ASA. Wenn Sie Datenbankkomponenten in FrontPage einfügen, wird die Datei GLOBAL.ASA automatisch erzeugt und mit den entsprechenden Werten geladen. Diese Datei hat die folgende Struktur, wenn Sie noch keine eigenen Befehle eingetragen haben:

Die Datei GLOBAL.ASA

Am Beginn einer Session wird die Prozedur Session_OnStart aufgerufen, die enthaltenen Befehle werden ausgeführt. Die Bedeutung der Prozeduren Application_OnStart und Application_OnEnd werden im nächsten Abschnitt zum Thema Applikationen erklärt. Beachten Sie, dass die Prozeduren in der Datei GLOBAL.ASA keine Ausgaben erzeugen können. Sie dürfen weder HTML-Code noch Response.Write-Methoden enthalten. Das gilt, obwohl der HTML-Tag

15.4.6

Applikationen

Bislang wurden Skripte immer so aufgebaut, dass jeder einzelne Prozess zu der vom Nutzer sichtbaren Seite passt. Praktisch entspricht diese Vorgehensweise der Kopplung von Oberfläche und zugehörigem Programmcode. Moderne Software-Entwicklungssysteme wie Visual Basic oder Delphi arbeiten ähnlich. All diese Systeme haben jedoch eine gemeinsame Zone im Hintergrund zu Eigen, die alle Prozesse zusammenführt – das Fenster. Mit dem Application-Objekt wird eine solche Zusammenführung auch in ASP möglich, obwohl auf dem Webserver kein Fenster erzeugt wird. Als Applikation wird hier die Zusammenfassung mehrerer Skripten verstanden. Das in Abschnitt 14.1 Datenbankpraxis gezeigte Projekt ist eine solche Applikation. Natürlich sind Applikationen nicht nur eine Sammlung von Skripten. Es gibt eine ganze Reihe interessanter Funktionen, die zur Entwicklung großer Projekte nötig sind und bisher gefehlt haben: 왘 Daten können zwischen Skripten ausgetauscht werden. 왘 Daten können auch zwischen Nutzern ausgetauscht werden. 왘 Am Beginn und am Ende einer Applikation werden spezielle Ereignisse

ausgelöst und können behandelt werden. 왘 Mit Hilfe der Managementkonsole können Applikationen unterschiedli-

che Eigenschaften zugewiesen werden, beispielsweise ein Timeout-Wert.

552

Webserver-Bibliothek 왘 Applikationen können in eigenen Adressräumen unter Windows NT ar-

beiten und sind damit voneinander getrennt. 왘 Eine Applikation, die abstürzt oder gestoppt wird, zieht andere nicht in

Mitleidenschaft. Ein Web kann mehrere Applikationen haben, jeder virtuelle Server sollte eine eigene Applikation (oder viele) haben, und jedes Programm, das für sich abgeschlossene Aufgaben ausführt, sollte eine eigene Applikation sein. Sie können Applikationen auch benutzen, um Nutzern Funktionen zur Verfügung zu stellen. So können Sie eine Shopapplikation betreiben, die von verschiedenen Webs auf dem Computer benutzt wird und trotzdem unterschiedliche Darstellungen hat. Für jede Applikation muss mit der Managementkonsole ein Basisverzeichnis (engl. Root Directory) festgelegt werden. Die Applikation besteht dann aus dem zum Basisverzeichnis erklärten Ordner und allen Unterordnern und den darin enthaltenen Dateien. Definieren Sie einen der Unterordner erneut als Basisverzeichnis, fällt er aus der Struktur der übergeordneten Applikation heraus. Zwei Applikationen können sich nicht überlappen und einen Ordner teilen. Nach der ersten Installation der Active Server Pages ist eine so genannte Standardapplikation schon erstellt. Diese bezieht sich auf das Stammverzeichnis des Webservers.

Eine Applikation wird definiert

Die Definition einer neuen Applikation führt immer über die Managementkonsole. Starten Sie die Konsole, wählen Sie den IIS und anschließend dort die STANDARDWEBSITE aus (in der englischen Version DEFAULT WEBSITE). Abbildung 15.3: Die StandardWebSite ist die erste, schon von der Installationsroutine eingerichtete Applikation

553

15 Programmierung von Webseiten

Wenn Sie auf dem Entwicklungssystem arbeiten, werden Sie normalerweise nur mit Unterverzeichnissen in Berührung kommen. Auf einem Webserver im Netz können Applikationen natürlich auch virtuellen Servern mit eigener IP zugeordnet werden. Das Applikations-Objekt (Application) Zur Steuerung und Verwaltung der Applikationen dient ein eingebautes Objekt, das Objekt Application. Die Arbeitsweise ist dem Session-Objekt sehr ähnlich. Der einzige Unterschied ist die Position des Objekts. Die Applikation bezieht sich auf alle laufenden Skripten, die aus dem Verzeichnis der Applikation gestartet werden. Die definierten Variablen stehen also auch allen Skripten zur Verfügung. Dadurch können Sie Daten zwischen Skripten und zwischen Nutzern austauschen. Die Variablen des ApplicationObjekts

Die Variablen des Objekts Application können von allen Skripten und Nutzern gesehen werden – sie sind global. Von den Sessionvariablen unterscheiden sich Applikationen durch drei Eigenschaften: 왘 Applikationsvariablen basieren nicht auf Cookies. 왘 Der Webserver muss keine Session mitführen, um mit der Applikations-

variablen zu arbeiten. 왘 Die Verwendung ist risikolos und mit allen Browsern kompatibel. Applikationsvariablen erzeugen und nutzen

Eine neue Variable ist schnell erzeugt. Übergeben Sie dem Objekt einfach die Variable und den zu speichernden Wert:

Mit Applikationsvariablen arbeiten



Wurde die Variable einmal definiert, kann sie auf jeder anderen Seite von jedem Nutzer gelesen werden, wie im folgenden Listing gezeigt:

Applikationen nutzen



Es spielt keine Rolle, welcher Nutzer diese Seite aufruft, wann er dies tut und ob er zwischen dem Seitenwechsel die Sitzung beendet.

554

Webserver-Bibliothek

Einmal definierte Variablen lassen sich nicht wieder löschen. Sie bleiben erhalten, bis der Webserver heruntergefahren wird oder die Applikation mit der Managementkonsole entfernt wird. Das ist bei der Planung der Skripten wichtig zu wissen, denn wenn Sie immer wieder neue Variablen mit Zufallsgeneratoren erzeugen (was sich bei den Sessions noch anbot), wird der Server belastet. Variablen brauchen Speicherplatz und kosten Rechenleistung.

Applikationsvariablen löschen

Die Applikationsereignisse Die Ereignissteuerung wurde bereits beim Objekt Session angesprochen. Ganz ähnlich funktioniert die Ereignissteuerung bei einer Applikation. Auch diese Ereignisse werden mit Skripten bedient, die sich in der Datei global.asa befinden. Jede Applikation hat eine eigene global.asa-Datei. Die beiden darin untergebrachten applikationsbezogenen Prozeduren starten, wenn die erste Seite der Applikation, beispielsweise index.asp, das erste Mal aufgerufen wird. Der erste Nutzer, der nach dem Start des Webservers die Seite besucht, löst das Ereignis aus. Jeder weitere Nutzer löst nur die Session-Prozeduren Session_OnStart und Session_OnEnd aus. Nach der ersten Initialisierung der Applikationsvariablen stehen diese nun immer zur Verfügung. Die Skripten innerhalb der Prozeduren Application_OnStart und Application_OnEnd sind einigen Einschränkungen unterworfen. So dürfen keine Ausgaben in irgendeiner Form erfolgen, HTML-Code darf nicht enthalten sein, und Sie sollten keine Absprünge auf andere Seiten programmieren (mit Response.Redirect). Die Skripten werden automatisch vor der ersten Seite gestartet und wieder verlassen.

Applikationsereignisse steuern

Eine gute Anwendung ist ein Hitzähler für Ihre Webseite. Damit der Zähler auch exakt arbeitet, ist es sinnvoll über die interne Arbeitsweise nachzudenken. Der Webserver liefert Seiten an Nutzer, wann immer diese die Seiten anfordern. So entstehen parallel laufende Prozesse. Da alle Prozesse Zeit brauchen, um ausgeführt zu werden, ergibt sich möglicherweise ein Problem. Wenn zwei Nutzer gleichzeitig eine Seite aufrufen, werden die Werte parallel verarbeitet. Wenn der Ursprungswert der Variablen 4 ist, schreibt Nutzer 1 mit seiner Sitzung den Wert 5 zurück. Bis dahin hat aber auch Nutzer 2 die Seite gestartet, ebenfalls den Wert 4 ermittelt und 5 zurück geschrieben. Danach steht der Zähler auf 5 und nicht, wie es richtig wäre, auf 6. Denken Sie daran, dass ein Multitasking-Betriebssystem Prozesse parallel ausführt. Wenn sich die Ergebnisse beeinflussen müssen, sind besondere Maßnahmen angebracht. Das Application-Objekt kennt deshalb zwei besondere Methoden, die dazu gedacht sind andere Prozesse vorübergehend zu stoppen – Lock und UnLock. Eine gute GLOBAL.ASA-Anwendung ist der im nächsten Listing vorgestellte, fehlerfrei arbeitende Hitcounter. Der FrontPage-Counter ZÄHLER arbeitet auch fehlerfrei, ist aber auf die FrontPage-Erweiterungen angewiesen.

Application .Lock Application. Unlock

Jede Session, die startet, ruft die Prozedur Session_OnStart auf. Als erstes wird die gesamte Applikation verriegelt (engl. Lock), sodass andere Prozesse nicht ausgelöst werden können. Dann wird der Wert der Variablen erhöht und die Applikation wieder freigegeben. Die in dieser Zeit aufgelaufenen Anfragen gehen nicht verloren oder werden mit Fehlermeldungen abgeschmettert. Die Prozesse warten einfach und werden dann nacheinander abgearbeitet. Wenn 50 Nutzer gleichzeitig zugreifen, wird sich der Hitzähler korrekt um 50 erhöhen. Die Zeit, die der letzte Nutzer warten muss, ist gering. Eine Addition benötigt nur wenige Millisekunden, 50 Additionen benötigen vielleicht eine halbe Sekunde. Wenn Sie auch in anderen Skripten intensiv mit Application.Lock arbeiten, sollten Sie bedenken, dass längere Blockierungen die Gesamtleistung des Webservers drastisch reduzieren können.

15.5 Datenbankzugriff Um in ASP eine leistungsstarke Datenbankumgebung zur Verfügung zu stellen, liefert Microsoft die ActiveX-Data-Objekte (ADO) mit aus. Diese ermöglichen den Zugriff auf ODBC-Datenbanken direkt aus VBScript und JScript heraus. Insgesamt gibt es sieben Objekte, welche die Datenbankanbindung leicht und einfach unterstützen. Außerdem können Sie SQL zur Abfrage der Daten verwenden.

15.5.1

Einführung in ADO

Übersicht ADO-Objekte Die folgenden Objekte gehören alle zur Klasse ActiveX-Data-Object Database (ADODB): 왘 CONNECTION

Stellt eine Verbindung mit einem SQL-Server her. 왘 RECORDSET

Stellt die Datenschnittstelle zu den Tabellen der Datenbank her. 왘 STREAM

Zugriff auf sequenzielle Daten und XML.

556

Datenbankzugriff 왘 RECORD

Lokale Speicherung eines einzelnen Datensatzes. 왘 FIELD

Erlaubt den Zugriff auf ein einzelnes Feld. 왘 COMMAND

Sendet einzelne Kommandos an einen SQL-Server oder startet gespeicherte Prozeduren. 왘 PARAMETER

Erlaubt den Zugriff auf die Rückgabewerte oder Parameter einer gespeicherten Prozedur. 왘 PROPERTY

Ermöglicht den Zugriff auf Eigenschaften der SQL-Datenbank. 왘 ERROR

Ein Objekt zur Behandlung von Fehlermeldungen. Das Objektmodell ADO basiert auf einem einfachen Objektmodell, in dem bestimmte Objekte in Abhängigkeit zu anderen Objekten stehen. Einige Objekte bilden Kollektionen, deren Elemente wiederum Objekte bilden. Abbildung 15.4 zeigt die Verknüpfungen der Objekte untereinander.

Die „Nordwind“Datenbank ist Bestandteil von Office 2002

Abbildung 15.4: Das ADO-Objektmodell in der Übersicht

557

15 Programmierung von Webseiten

Jedes Objekt kann verschiedene Eigenschaften enthalten, deren Abhängigkeiten die folgende Abbildung zeigt. Abbildung 15.5: Eigenschaften werden aus allen Objekten abgeleitet

Die folgenden Beispiele gehen davon aus, dass eine Datenbankdatei unter der ODBC-Steuerung von Windows unter dem Namen nordwind.dsn aktiviert ist. Erscheinen bei der Ausführung der Beispiele Fehler, liegt ein Problem mit der Konfiguration vor.

15.5.2

Einführung in SQL

Die folgende Einführung zeigt die Grundzüge der Abfragesprache SQL. Die konkrete Anwendung hängt von der vorhandenen Datenbank ab. SQL ist eine Datenbankabfragesprache. Der große Vorteil ist, dass Sie mit der Kenntnis dieser Sprache viele Datenbanken benutzen können, die mit SQL kompatibel sind. Dadurch werden Ihre Datenbankanwendungen unabhängig von einer bestimmten Datenbank eines einzelnen Herstellers. Im deutschen Sprachraum hat es sich übrigens eingebürgert, die drei Buchstaben auch deutsch und einzeln auszusprechen, wenn von SQL die Rede ist. Technisch sind SQL-Abfragen kleine Befehlszeilen oder Tags, die an den Server gesendet werden. Die Befehle sind in englischer Sprache gehalten und sollten den Sinn der Abfrage erkennen lassen. Sie können in SQL auch kleine Programme schreiben. Allerdings ist SQL ganz streng auf die Bedienung von Datenbanken ausgerichtet. SQL alleine bringt wenig. Sinnvoll ist die Integration in eine Programmier- oder Skriptsprache, eben VBScript. Welche Programme werden verwendet? Fast alle modernen Datenbank verstehen SQL

558

Das einfachste SQL-fähige Programm besitzen Sie vielleicht schon. In Office XP ist auch die Datenbank Access 2002 enthalten. Prinzipiell ist Access SQLfähig und könnte eingesetzt werden. Allerdings hat Access Probleme, meh-

Datenbankzugriff

rere Prozesse parallel zu bearbeiten. Sie sollten Access auf keinen Fall für einen Webserver einsetzen. Eine bessere – und teurere – Wahl ist der Microsoft SQL Server 2000. Unabhängig davon gibt es eine ganze Reihe guter SQL-Datenbanken wie Informix, Oracle oder Sybase. In diesem Buch wird im Wesentlichen der SQL Server 2000 und Access 2000 vorgestellt, sodass Sie sowohl ein Entwicklungssystem als auch einen Produktionsserver nutzen können. Was ist eine Datenbank? Wenn Sie noch keine klare Vorstellung davon haben, was eine Datenbank eigentlich ist, lesen Sie die folgende kurze Einführung. Ansonsten springen Sie zum nächsten Abschnitt ADO praktisch verwenden ADO praktisch verwenden.

Eine Datenbank fasst Daten zusammen

Datenbanken dienen der Speicherung von Daten. Das können Namen, Adressen, Zahlen, Zeichenketten usw. sein. Daten stehen auch untereinander in Beziehung. So sind die Teile einer Adresse eine zusammengehörende Einheit. Eine solche Einheit nennt man Datensatz (engl. record). Die Teile eines Datensatzes bilden die Felder (engl. fields). Jedes Feld hat zwei grundlegende Eigenschaften – einen Namen und einen Datentyp. Wenn Sie Adressen speichern, könnten die Felder und Datentypen so aussehen:

Felder und Datensätze

FIRMA, String(80) STRASSE, String(80) ORT, String(50) PLZ, Integer

Die Bedeutung dieser Ausgaben ist leicht zu verstehen. Das Feld FIRMA kann Zeichenketten mit bis zu 80 Zeichen aufnehmen, das Feld PLZ (Postleitzahl) kann ganzzahlige Werte aufnehmen usw. Um viele Daten übersichtlich anzeigen zu können, hat sich die Tabellenform als besonders praktisch erwiesen. Dabei bildet jede Spalte ein Feld ab, jede Zeile enthält einen Datensatz. Mehrere Tabellen bilden eine Datenbank. FIRMA

STRASSE

ORT

PLZ

Silicon Projects GmbH

Ostendstraße 1

Berlin

12459

Yoolia AG

Mariannenstraße 31-32

Berlin

10999

Tabelle 15.2: Die Darstellung in Tabellenform hat sich bewährt.

Die Spaltenbreite und andere „Anzeigewerte“ spielen innerhalb der Tabelle natürlich keine Rolle. Wie kann nun ein bestimmter Datensatz ermittelt werden? Intern läuft immer ein so genannter Index mit. Jeder Datensatz hat einen Indexwert – eine ID. Damit ist der Datensatz auch dann eindeutig und einmalig, wenn der gesamte Inhalt mit einem anderen Datensatz identisch ist.

559

15 Programmierung von Webseiten

Das alles ist für die Praxis nicht ausreichend. Die Firmen in unserem Beispiel haben mehrere Mitarbeiter, die als Ansprechpartner zu verwalten sind. Eine mögliche Feldstruktur wäre: NAME, String(60) EMAIL, String(60) TELEFON, String(60) GEBURTSTAG, Datum

Sie können dann die folgenden Mitarbeiter in der neuen Tabelle anordnen: Tabelle 15.3: Eine einfache Tabelle mit vier Spalten

Beziehungen zwischen Datenbanktabellen herstellen

Tabelle 15.4: Die Tabelle wird mit einem Schlüsselfeld ergänzt

NAME

EMAIL

TELEFON

GEBURTSTAG

Jörg Krause

[email protected]

030/ 56301030

26.05.1964

Andreas Hoffmann

[email protected]

030/ 61103211

23.09.1972

Arnd Schwierholz

[email protected]

030/ 61103212

10.02.1971

Das scheint recht einfach. Wie kann aber die Zuordnung der Mitarbeiter zu den Firmen aus der ersten Tabelle erfolgen? Sicher wäre eine Lösung, jedem Datensatz in der ersten Tabelle wieder eine Tabelle mit allen Ansprechpartner zuzuordnen. Aber bei 1.000 Firmen hätten wir dann 1.000 Tabellen mit Ansprechpartnern, in denen meist nur ein einziger Datensatz vorhanden ist. Für die Arbeit mit Datenbanken ist das sehr unpraktisch. Deshalb baut man eine Beziehung (engl. relationship) zwischen Tabellen auf. Datenbanksysteme, die so arbeiten, nennt man deshalb auch relationale Datenbanken. Dazu wird die erste Tabelle einfach mit einem so genannten Schlüssel (engl. key) ergänzt. Der Schlüssel wird auch in der zweiten Tabelle eingesetzt. Die Tabelle sieht dann folgendermaßen aus: F_KEY

FIRMA

STRASSE

ORT

PLZ

1

Silicon Projects GmbH

Ostendstraße 1

Berlin

12451

2

Yoolia AG

Mariannenstraße 31-32

Berlin

10999

Die zweite Tabelle wird jetzt mit der ersten verbunden. Dazu wird auch diese Tabelle mit den Schlüsseln aus der nächsten Tabelle ergänzt. Damit wir zu jedem Ansprechpartner weitere Informationen hinzufügen können, erhält auch diese Tabelle eigene Schlüsselwerte. Diese führenden Schlüssel bilden den Index der Tabelle. Indizes haben bei der Abfrage mit SQL noch eine besondere Bedeutung. Die zweite Tabelle, ergänzt um die Schlüssel, sehen Sie nachfolgend:

560

Datenbankzugriff

KEY

NAME

EMAIL

TELEFON

GEBURTSTAG

P_ KEY

1

Jörg Krause

[email protected]

030/ 56301030

26.05.1964

1

2

Andreas Hoffmann

[email protected]

030/ 61103211

23.09.1972

2

3

Arnd Schwierholz

[email protected]

030/ 61103212

10.02.1971

1

Tabelle 15.5: Verknüpfung zweier Tabellen durch Schlüsselfelder

Sie sehen anhand des Schlüssels der letzten Tabelle, welcher Ansprechpartner zu welcher Firma gehört. Die Nummer im Feld p_key ist mit der Nummer im Indexfeld f_key der vorhergehenden Tabelle verknüpft. Für die folgenden Beispiele wollen wir unseren beiden Tabellen noch einen netten Namen geben. Jede Abfrage kann sich dann auf den Namen beziehen. Die erste Tabelle soll firmen heißen, die zweite partner. Eine Datenbank entsteht, wenn Sie viele Tabellen mit oder ohne solche Verknüpfungen zusammenfassen und gemeinsam anordnen. Physisch werden aus diese Weise mehrere Tabellen in einer Datei gemeinsam untergebracht. Datenbankdateien können Sie nicht mit Texteditoren betrachten. Zum einen befinden sich in der Datenbank fast immer mehrere Tabellen, zum anderen komprimieren moderne Datenbanken die Daten. Wenn Sie für die Namen 80 Zeichen festlegen, werden Sie dies kaum bei allen Namen ausnutzen. Moderne SQL-Datenbanken speichern nicht die gesamte Länge, sondern nur den wirklich belegten Speicherplatz. Trotzdem haben SQL-Datenbanken eine bestimmte Basisgröße, auch ohne Daten. Alle Angaben über Tabellen- und Feldstrukturen werden immer mitgespeichert. Um SQL zu verstehen, müssen Sie eine grundsätzliche Eigenschaft kennen. SQL ist eine Abfragesprache, die davon ausgeht, dass Sie bestimmte Datensätze selektieren, auswählen oder filtern möchten. Davon geht jede Abfrage aus. Es gibt keinen Befehl der Art „TABELLE ANZEIGEN“. Es gibt Befehle der Art „ZEIGE email IN Tabelle 1 MIT name=krause“. Datensätze werden nach ihren Inhalten und Verknüpfungen behandelt. Normalerweise gehen Sie davon aus, dass die Datensätze durchnummeriert sind und Sie einfach Datensatz eins bis zehn anzeigen lassen. SQL kennt eine solche Zählung nicht. Es gibt keinen Datensatz eins oder zehn bzw. einen ersten oder letzten Datensatz. Wenn Sie Zahlen zur Verwaltung brauchen, dann fügen Sie ein Feld hinzu; nennen Sie es MEINENUMMER und nummerieren Sie jeden neuen Datensatz mit einer aufsteigenden Zahl. Dann können Sie nach MEINENUMMER=1 oder MEINENUMMER3) (stimmen bei DIFFERENCE>2)

Wie arbeitet SOUNDEX intern? Zuerst wird der erste Buchstabe beider Zeichenketten als Basis verwendet. Stimmt dieser überein, steht das erste Zeichen fest. Dann geht es mit den nächsten Konsonanten weiter. Vokale werden ignoriert (das Y zählt als Vokal!), es sei denn, der Vokal steht an erster Stelle (Yahoo). Performance-Tipp: Die Verwendung dieser Funktionen ist recht sinnvoll, wenngleich die meisten SQL-Datenbanken Probleme mit der Leistung haben. Eine hohe Belastung der Datenbank kann auch gute Server in die Knie zwingen. RTRIM LTRIM

Aus VBScript kennen Sie die Funktionen LTRIM und RTRIM zum Beseitigen überflüssiger Leerzeichen. SQL kennt diese Funktionen auch: SELECT RTRIM(name) FROM partner

572

Datenbankzugriff

SELECT LTRIM(name) FROM partner

Sie können diese Funktionen auch miteinander verschachteln, denn die dritte Funktion TRIM gibt es nicht: SELECT LTRIM(RTRIM(name)) FROM partner

Die Anwendung ist dann sinnvoll, wenn Sie statt VARCHAR mit CHAR als Datentyp arbeiten. SQL füllt Felder vom Typ CHAR mit Leerzeichen auf, bis die gewünschte Länge erreicht wird. Bei der Ausgabe kann das lästig sein. Die Trim-Funktionen bringen eine Zeichenkette wieder in die richtige Form. Daten und Zeiten Die einfachste Funktion ist das Äquivalent zum VBScript-Befehl DATE. In SQL fragen Sie das aktuelle Datum und die aktuelle Zeit mit GETDATE ab. Auch hier dient die Systemuhr des Servers als Basis. Sie können diese Funktion benutzen, um bei Datumsfeldern einen variablen Standardwert zu setzen:

GETDATA

CREATE TABLE logdata ( name VARCHAR(50), date DATETIME DEFAULT GETDATA() )

Sie können die Ausgabe des Datums vielfältig beeinflussen. Am einfachsten ist wieder die Funktion CONVERT, die als dritten Parameter einen Code enthalten kann, der die Formatierung des Datums und der Zeit bestimmt. Code

Standard

Ausgabeformat

0

Vorauswahl

mon dd yyyy hh:mi[AM|PM]

1

USA I

mm/dd/yy

2

ANSI

yy.mm.dd

3

England

dd/mm/yy

4

Deutschland

dd.mm.yy

5

Italien

dd-mm-yy

6

Tabelle 15.7: Stylecodes für die Funktion CONVERT

dd mm yy

7

England, Brief

mon dd, yy

8

Zeit

hh:mi:ss

9

Millisekunde

mon dd yyyy hh:mi:ss:iii[AM|PM]

10

USA II

mm-dd-yy

11

Japan

yy/mm/dd

12

ISO

yymmdd

573

15 Programmierung von Webseiten

Code

Standard

Ausgabeformat

13

Europa mein

14

Zeit Europa

allge- dd mon yyyy hh:mi:ss:iii(24) hh:mi:ss:iii(24)

Anmerkungen: Die Codes 0, 9 und 13 geben das Jahr immer vierstellig zurück. Ansonsten können Sie zum Code 100 addieren, also statt 4 einfach 104 schreiben, um das Datum vierstellig zu machen. Nur die Codes 13 und 14 können die Uhr in unserem 24-Stunden-Format anzeigen. Die Zeichen bedeuten im Einzelnen: iii = Millisekunden, dreistellig, ss = Sekunden, mi = Minuten, hh = Stunden [AM|PM] = entweder AM (vormittag) oder PM (nachmittag), (24) = 24-Stunden-Format dd = Tag, mm = Monat in Ziffernform, mon = Monat als Abkürzung (Jan, Feb, Nov usw.) yy = Jahr in zweistelliger Form, yyyy = Jahr in vierstelliger Form DATEPART

Damit Sie gezielt Teile von Zeitangaben aus der Funktion DATETIME ziehen können, bietet SQL die Funktion DATEPART: SELECT name DATEPART(mm, login) FROM logdata

Statt „mm“ können Sie einen der Codes in der folgenden Tabelle verwenden: Tabelle 15.8: Die Abkürzungen für die Steuerung der Funktion

DATEPART

DATENAME

574

Code

Name

Beschreibung

Wertebereich

yy

Year

Jahr

1753-9999

qq

Quarter

Quartal

1-4

mm

Month

Monat

1-12

dy

Day of year

Tag im Jahr

1-366

dd

Day

Tag

1-31

wk

Week

Woche

1-53

dw

Weekday

Wochentag

1-7 (Sonntag =1 bis Samstag)

hh

Hour

Stunde

0-23

mi

Minute

Minute

0-59

ss

Second

Sekunde

0-59

ms

Millisecond

Millisekunde

0-999

Ergänzend sei noch die Funktion DATENAME erwähnt, die genauso wie die Funktion DATEPART eingesetzt wird. Allerdings werden Zeichenketten statt Zahlen zurückgegeben. Für die Codes „mm“ und „dw“ ergibt sich die Ausgabe des Monatsnamens (January, December) und des Wochentages (Monday, Friday). Die Sprache ist vom Produkt abhängig; In der Regel wird es Englisch sein.

Datenbankzugriff

Berechnungen mit Daten können recht aufwändig sein. Auch hier hilft SQL weiter und stellt zwei weitere Funktionen zur Verfügung: DATEDIFF und DATEADD. Ähnlich wie VBScript werden damit Differenzen berechnet bzw. ein Zieldatum ermittelt. Die Tabelle Registrierung soll Kunden speichern, die für vier Wochen ein Abonnement bezahlt haben. Sie können das Ablaufen des Abos einfach auf der Basis des Datumsfeldes abostart ermitteln:

DATEDIFF DATEADD

SELECT name DATEADD(mm,1,abostart) FROM registrierung

15.5.3

ADO praktisch verwenden

Datensätze lesen und schreiben Das folgende Beispiel zeigt den Zugriff auf die Beispieldatenbank nordwind, das Schreiben eines Datensatzes mit INSERT und das Lesen eines Datensatzes mit SELECT. Dann fügt dieses Skript einen Datensatz an und gibt den ersten (schon vorhandenen) aus.

ADO Beispiel



Die Methoden Open, Execute und Close werden benutzt. Die Methode Open eröffnet eine Verbindung zu einem SQL-Server via ODBC. Mit Execute werden SQL-Befehle direkt an den SQL-Server gesendet. Sie können hier alles verwenden, was unter SQL erlaubt ist. Mit Close wird die Verbindung wieder geschlossen. Verbindungen öffnen und schließen Mit diesem Objekt eröffnen Sie die Verbindung zu einer Datenbank und schließen sie wieder. Jede Kommunikation mit einer Datenbank kann nur stattfinden, wenn die Verbindung eröffnet wurde. So können Sie SQL-Befehle nur nutzen, wenn eine SQL-Datenbank auch von ASP aus erreicht werden kann.

575

15 Programmierung von Webseiten Connection .Open Connection .Close

Um die Verbindung zu eröffnen, wird eine Instanz des Objekts Connection erzeugt. Die Methode Open eröffnet die Verbindung:

Das ist recht umständlich, wenn Sie an 126 Stellen die Verbindung zur Datenbank herstellen. Da jeder Nutzer seine eigene Verbindung öffnet, bietet sich eine Sessionvariable für die Speicherung des Pfades zur Datenbank an. Öffnen Sie dazu die Datei GLOBAL.ASA, und definieren Sie eine Sessionvariable in der Prozedur Session_OnStart: Session("db_pfad") = "DSN=nordwind"

Der häufig benutzte Objektname RS steht für Recordset (dt. Datensatz). Sie benötigen das Datensatzobjekt, weil der SQL-Server seine Daten zunächst „irgendwohin“ produziert. Die Methode Execute hat zwei weitere Parameter, die folgende Bedeutung haben: 왘 RecordsAffected

Dieser Parameter steht als nächster nach dem SQL-Befehl und enthält nach der Ausführung des Kommandos die Anzahl der betroffenen Datensätze. 왘 Options

Für diesen Parameter darf eine von vier Konstanten eingesetzt sein. Die Übergabe erlaubt es ADO, effizienter zu arbeiten. Die Parameter sind aber optional und haben folgende Bedeutung: 왘 adCMDTable

Der Parameter ist der Name einer Tabelle. 왘 adCMDText

Kommando in Textform. Das ist die normale Form. 왘 adCMDStoredProc

Der erste Parameter ist der Name einer gespeicherten SQL-Prozedur. 왘 adCMDUnknown

Nicht bekannt; das ist der Wert, den ASP annimmt, wenn Sie gar nichts angeben.

576

Datenbankzugriff

Um die Konstanten auch nutzen zu können, müssen Sie eine spezielle Datei einschließen, welche die Definitionen enthält:

Der Unterschied zu dem vorangegangenen Beispiel liegt in der Methode Open und den damit verbundenen Parametern. Die ersten beiden sind relativ klar: In Form einer Zeichenkette wird der SQL-Befehl übergeben und dann die Datenverbindung, auf die sich das Kommando bezieht. Der letzte Parameter bezeichnet den Typ des Datensatzzeigers (engl. Cursor Type). Die angegebene Konstante ist in der Datei adovbc.inc definiert, die vorher mit einem INCLUDE-Kommando eingefügt werden muss.

Der Datensatzzeiger

Die folgenden Datensatzzeiger können Sie angeben: 왘 adOpenForwardOnly

Mit diesem Zeiger können Sie sich nur vorwärts durch das Datensatzobjekt bewegen. Dies ist der Standardzeiger, der benutzt wird, wenn Sie keinen speziellen Wert angeben. 왘 adOpenKeySet

Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Durch eine Verbindung mit der Tabelle wird angezeigt, wenn Sie auf einen einzelnen Datensatz zeigen, der von einem anderen Nutzer gelöscht oder verändert wurde. Neu hinzugefügte Datensätze werden dagegen an dieser Stelle nicht angezeigt. 왘 adOpenDynamic

Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Durch eine Verbindung mit der Tabelle wird angezeigt, wenn Sie auf einen einzelnen Datensatz zeigen, der von einem anderen Nutzer gelöscht oder verändert oder neu hinzugefügt wurde. 왘 adOpenStatic

Sie können sich in beide Richtungen im Datensatzobjekt bewegen. Änderungen, die in dieser Zeit erfolgen, werden nicht wiedergegeben. Neben der Auswahl des Datensatzzeigers kann auch das Verhalten der angesprochenen Tabelle gegenüber gleichzeitigen Änderungen durch andere Nutzer gesteuert werden. Es ist sehr wichtig darüber nachzudenken, welche Aktionen durch andere Nutzer in möglicherweise anderen Skripten in der Tabelle erfolgen können. Denken Sie daran, dass eine gut besuchte Seite gleichzeitig von mehreren Personen benutzt wird. Das folgende Beispiel zeigt, wo der zusätzliche Parameter eingesetzt wird:

Wie in den Beispielen zum Lesen der Datenbanktabelle angedeutet, besteht auch die Möglichkeit, Werte in die Tabelle zu schreiben. Unterstützt wird das durch mehrere Methoden, die einen komfortablen Umgang mit SQL erlauben. Hier eine Übersicht:

Erweiterte Methoden

왘 AddNew

Fügt dem Datensatzobjekt einen neuen Datensatz hinzu. 왘 CancelBatch

Wenn das Datensatzobjekt im Batch-Modus ist, wird der Stapellauf damit unterbrochen. 왘 CancelUpdate

Macht alle Änderungen rückgängig, die am Datensatzobjekt bis zur Ausführung der UPDATE-Methode vorgenommen wurden. 왘 Delete

Löscht einen Datensatz vom Datensatzobjekt. 왘 Update

Speichert alle Änderungen, die am Datensatzobjekt vorgenommen wurden. 왘 UpdateBatch

Speichert alle Änderungen, die an einem oder mehreren Datensätzen vorgenommen wurden, wenn mit Batchprogrammen gearbeitet wird. Beachten Sie, dass die ADO-Methoden etwas langsamer sind als die direkte Verwendung von SQL. Wenn Sie SQL beherrschen, nutzen Sie bevorzugt den direkten Weg! Ein einfaches Navigationsinstrument wurde bereits erläutert, die Methode MoveNext. Damit bewegen Sie den Datenbankzeiger einen Datensatz (Zeile) weiter. Nach dem Öffnen der Tabelle steht der Zeiger auf der ersten Position, und die Abarbeitung endet mit dem Erreichen des Dateiendes, EOF wird TRUE. Für eine komfortable und vor allem schnelle Abfrage reicht das aber nicht aus. Die wichtigsten einfachen Navigationsbefehle bewegen den Datensatzzeiger komfortabler:

Einfache Navigationsinstrumente

왘 Move anzahl

Bewegt den Datensatzzeiger um anzahl Positionen weiter Richtung Datenbank-Ende (positive Werte) oder Anfang (negative Werte).

581

15 Programmierung von Webseiten 왘 MoveFirst

Setzt den Datenbankzeiger wieder auf die erste Zeile. 왘 MoveNext

Bewegt den Datensatzzeiger eine Position weiter. 왘 MovePrevious

Bewegt den Datensatzzeiger eine Position zurück. 왘 MoveLast

Setzt den Datenbankzeiger wieder auf die letzte Zeile. Bedenken Sie, dass einige dieser Methoden einen ganz bestimmten Typ des Datensatzobjekts benötigen. So können Sie mit dem Parameter adOpenFor wardOnly kreierte Objekte nicht benutzen, um durch MovePrevious einen Datensatz zurück zu gelangen. Direkte Positionierung

Mit einigen Eigenschaften können Sie Ihre Navigationsskripte ebenfalls gut unterstützen: 왘 AbsolutePosition

Setzt den Datensatzzeiger auf eine bestimmte Position oder gibt die Position des Datensatzzeigers aus. 왘 BOF

Ist TRUE, wenn der Datensatzzeiger am Beginn des Datensatzobjekts steht, also in der ersten Zeile der Tabelle. 왘 EOF

Ist TRUE, wenn der Datensatzzeiger am Ende des Datensatzobjekts steht, also in der letzten Zeile der Tabelle. 왘 RecordCount

Gibt die Anzahl der Datensätze in der Tabelle zurück. Wenn gegenüber der Original-SQL-Tabelle im Datensatzobjekt nur eine Auswahl steht (beispielsweise durch die WHERE-Bedingung eingeschränkt), werden nur die wirklich im Datensatzobjekt befindlichen Datensätze gezählt. Das nächste Beispiel zeigt unter Verwendung verschiedener Navigationsmethoden, wie die Tabelle rückwärts ausgegeben werden kann:

Tabelle von hinten anzeigen















Beachten Sie den Parameter adOpenStatic, der das Bewegen des Datensatzzeigers in beide Richtungen erlaubt. Das Kommandoobjekt Das Kommandoobjekt ergänzt auf sinnvolle und abschließende Weise die grundlegenden Datensatzobjekte. Während die bisher vorgestellten Methoden zeigen, wie mit den Mitteln von VBScript und ADO-Datenbanken abgefragt und beschrieben wird, wendet sich Command an die Programmierer, die ohnehin mit SQL umgehen können. Kurz gesagt, das Kommandoobjekt sendet alle Arten von SQL-Befehlen an die Datenbank. Sie benötigen dieses Objekt immer dann, wenn Sie nicht implizit eine andere Funktion ansprechen möchten. So können Sie mit Open prinzipiell jeden SQLBefehl absetzen, erzeugen aber immer eine neue Instanz des Datensatzobjekts. Ebenso funktioniert die Methode Execute, die auf der Instanz eines Verbindungsobjekts aufbaut.

Command

Die Anwendung – wieder in der üblichen Objektform – funktioniert folgendermaßen:

Kopfelemente Die folgenden Elemente können nur innerhalb der Tags erscheinen. TITLE

Dieses Element bildet den Titel der Seite. Wird in Suchmaschinen gelistet und erscheint in der Kopfzeile des Browserfensters. Der Titel bildet auch den Eintrag der Lesezeichenfunktion (Bookmark) der Browser. Es ist empfehlenswert, nur die Zeichen 32-126 zu verwenden, keine Umlaute.

620

HTML 3.2

Syntax:

Attribute:

keine

Enthält:

Text ohne Formatierungen

Meta-Informationen META

Definiert dokumentübergreifende Informationen und Steuerungsanweisungen. Kann auch benutzt werden, um die HTTP-Header zu manipulieren. Wird auch mit speziellen Tags (META-Tags) benutzt, um Suchmaschinen zu steuern. Syntax:

Attribute:

HTTP-EQUIV=string | NAME=string CONTENT=string

Zulässige Werte sind (derzeit) für HTTP-EQUIV oder NAME: HTTP-EQUIV =

CONTENT =

"Expires"

Enthält das Datum, an dem das Dokument ungültig wird.

"Reply-to"

Enthält eine E-Mail-Adresse des Autors.

"Keywords"

Enthält Schlüsselwörter, die im Header erscheinen.

"Refresh

Enthält eine Zeit in Sekunden und eine URL, zu der nach Ablauf der Zeit gesprungen wird (CONTENT="5; nextside.html")

NAME =

CONTENT =

"generator"

Names des Programmes, mit dem die HTML-Seite erzeugt wurde. Wird vom Programm selbst gesetzt.

"author"

Der Autor, wird vom Generator gesetzt.

"description"

Eine Beschreibung, wird nur von Suchmaschinen verwendet.

"keywords"

Enthält Schlüsselworte, die von Suchmaschinen indiziert werden.

Enthält:

nichts

LINK LINK LINK definiert Beziehungen zwischen Dokumenten.

Syntax:

Attribute:

REL=string, REV=string, HREF=URL, TITLE=string

621

B HTML-Referenz 왘 REL=string

Beziehung zu einem anderen Dokument. Neuere Browser können das auswerten und daraus Navigationshilfen erzeugen. 왘 REV=string Inverse Beziehung, das andere Dokument verweist zurück auf dieses. 왘 HREF=URL Beziehung zu einem Dokument an anderer Stelle. 왘 TITLE=titel. Das referenzierte Dokument wird neu benannt. Die Attribute REL und REV dürfen sein: REL = oder REV =

Beschreibung

"home"

Die Startseite

"toc"

Table of Contents, das Inhaltsverzeichnis

"index"

Der Index, beispielsweise alphabetisch

"glossary"

Ein Glossar mit Erklärungen

"copyright"

Ein Ursprungshinweis

"up"

Das logisch übergeordnete Dokument

"next"

Das logisch folgende Dokument der Ebene

"previous"

Das logisch vorgehende Dokument

"help"

Die Hilfeseite

Enthält:

nichts

BASE BASE

Gibt Informationen über die wirkliche Position des Dokumentes. Es ist dann interessant, wenn mit Spiegel- oder Sicherungsservern gearbeitet wird und der Browser das Original kennen muss, weil mit relativen Pfadangaben zugegriffen wird.

622

Syntax:

Attribute:

HREF=URL

Enthält:

nichts

HTML 3.2

SCRIPT SCRIPT

Enthält Skriptbefehle einer Skriptsprache, die im Browser interpretiert wird. Es ist außerdem empfehlenswert, den Inhalt mit den Kommentarzeichen einzuschließen, da einige Browser den

Attribute:

language=string, src=url.

Dabei bedeuten: 왘 Language=string

Die Skriptsprache („Javascript“, „VBScript“) 왘 Src=url

Enthält:

Die Quelle einer Skriptdatei („/cgi-bin/script.js“) Gültige Skriptbefehle der gewählten Sprache

Styleinformationen STYLE

Beginn einer Styledefinition. Zur Verwendung stehen derzeit nur CSS (Cascading Style Sheets) zur Verfügung. Syntax:

Attribute:

TYPE=string

Art der Styles Enthält:

Text, der die Styles definiert

Körperelemente Diese Elemente dürfen nur innerhalb der -Tags auftreten. Hier eine Übersicht: H1 .. H6

Header. Überschriften, die in einer bestimmten Grö ß e dargestellt werden. Die wirklichen Formatierungen sind vom Browser abhängig. H1 ist die grö ß te Überschrift, H6 die kleinste. Syntax:

, , , ,

Attribute:

ALIGN=left | right | center

Enthält:

Text und alle Textformatelemente

UL und LI

Unordered List. List Element. Eine unsortierte Liste, die Absätze einrückt und mit Symbolen markiert. Syntax:



    623

    B HTML-Referenz

  • Listenelement 1
  • Listenelement 2 ...


Attribute:

TYPE=disc|square|circle, COMPACT

Enthält:



  • OL und LI Ordered List, List Element. Eine sortierte Liste, die Absätze einrückt und mit Ziffern oder Buchstaben markiert.

    Syntax:

  • Listenelement 1
  • Listenelement 2 ...

    Attribute:

    TYPE=1|a|A|i|I, START=n, COMPACT.

    Dabei bedeuten die Typzeichen: 왘 1: 1, 2, 3, 4, ... 왘 a: a, b, c, d, ... 왘 A: A, B, C, D, ... 왘 i: Römische Ziffern, i, ii, iii, iv, v, vi, ... 왘 I: Römische Ziffern, I, II, III, IV, V, VI, ... 왘 START=n. Startwert (nicht alle Browser!)

    Enthält:



  • DIR Directory. Eine Liste mit kurzen Einträgen. Die meisten Browser stellen exakt wie
      dar.

      Syntax:



      Attribute:

      COMPACT

      Enthält:



    • MENU Menu. Eine Liste, ähnlich
        . Die führenden Zeichen des Elementes
      • entfallen, und die Liste ist etwas kompakter.

        624

        Syntax:

        Attribute:

        COMPACT

        Enthält:



      • HTML 3.2

        DL, DT, DD

        Definition List, Definition Term, Definition Definition. Dieses Element dient dem Aufbau eines Glossars. Es bildet eine Liste, die jeweils Paare von und - Elementen enthält. Syntax:

        Wort Erklärung Wort 2 Erklärung 2

        Attribute:

        COMPACT

        Enthält:

        , , Text

        P

        Paragraph. Bildet einen neuen Absatz. Die Attribute geben die Ausrichtung des gesamten Absatzes an. Der Absatz wird in

        eingeschlossen. Ein voller Zeilenabstand ohne Inhalt wird mit einem einzelnen

        erzeugt. Syntax:

        , [

        ]

        Attribute:

        ALIGN=left | center | right

        Enthält:

        Textelemente und Text

        PRE

        Preformatted. Normalerweise wird Text an den Fenstergrenzen des Browsers umbrochen, und überflüssige Leerzeichen werden entfernt. Dieser Tag lässt den enthaltenen Text völlig unverändert. Normalerweise wird auch eine nichtproportionale Schrift verwendet. Das Attribut gibt die Breite in Zeichen vor, so dass der Browser einen passenden Font wählen kann. Syntax:

        Attribute:

        WIDTH=n

        Enthält:

        Textelemente und Text

        BLOCKQUOTE

        Erstellt ein Zitat. Vergessen Sie Copyright und Quellenhinweis nicht. Dieser Tag war ursprünglich nicht dazu gedacht, um einfach einzurücken, wird jedoch inzwischen auch von HTML-Werkzeugen wie FrontPage zu eben diesem Zweck gebraucht. Syntax:



        Attribute:

        keine

        Enthält:

        Textelemente und Text

        625

        B HTML-Referenz

        ADDRESS

        Erstellt eine Adresse. Rückt ein und schreibt den enthaltenen Text kursiv. Nutzen Sie dieses Element nur für Adressen, nicht um einfachen Text zu formatieren. Syntax:



        Attribute:

        keine

        Enthält:

        Textelemente und Text

        DIV

        Logical Division. Teilt Textabschnitt in logische Teile. Dient der horizontalen Ausrichtung eines Absatzes und der Formatierung mit Hilfe von Cascading Stylesheets. Syntax:



        Attribute:

        ALIGN=left | right | center

        Enthält:

        Textelemente und Text

        CENTER

        Zentriert Text. Entspricht exakt . Syntax:



        Attribute:

        keine

        Enthält:

        Textelemente und Text

        Formulare FORM

        Formular. Definiert ein Formular, in dem sich Eingabefelder und spezielle Eingabeelemente () befinden können. Jedes Formular auf einer HTML-Seite sollte genau ein Submit-Element haben ( oder ). Syntax:



        Attribute:

        ACTION=URL, METHOD=get|post, ENCTYPE=string

        Dabei bedeutet: 왘 ACTION=URL

        Name eines Skripts, Programms oder Befehls, die zum Ausführen des Formulars benutzt werden sollen. 왘 METHOD=get | post Methode (HTTP-Methode), die beim Absenden des Formulars benutzt wird. GET sendet die Elemente in der URL mit, POST nutzt den Datenteil des HTTP-Headers.

        626

        HTML 3.2 왘 ENCTYPE=string

        Enthält:

        Die Zeichenkette definiert den Inhalt des Formulars in Form des MIME-Typs, beispielsweise „text/plain“. Textelemente und Text, Formularelemente (siehe ) Diese Elemente sind speziell für Formulare entwickelt und funktionieren nur, wenn sie von einem -Paar umgeben werden. Diese Elemente sind zulässig:

        INPUT

        Syntax:

        Attribute:

        TYPE=text|password|checkbox|radio|file|hidden TYPE=submit|reset|image, NAME=string, VALUE=string, CHECKED, SIZE=n, MAXLENGTH=n, SRC=URL, ALIGN=top|middle|bottom|left|right

        Beschreibung der Elemente: 왘 TYPE=element 왘 왘 왘







        왘 왘 왘 왘

        Art des Formularelements text Einzeiliges Texteingabefeld. Password Wie text mit verdeckter Eingabe (Sternchen). Checkbox Checkbox für Mehrfachauswahl. Gruppen werden durch gemeinsamen Namen gebildet. Radio Radiobutton für optionale Auswahl. Gruppen werden durch gemeinsamen Namen gebildet. File Dateieingabefeld, erzeugt zusätzlich einen „Browse“Schalter, der das Suchen auf Festplatte erlaubt (betriebssystemabhängig). Hidden Verstecktes Feld ohne Eingabemöglichkeit, wird zur Datenübergabe zwischen Seiten benutzt. Image Bild, ersetzt den Submit-Schalter. Submit Schalter, der das Formular absendet. Reset Schalter, der alle Elemente in den Urzustand stellt. NAME=string Name des Schalters, gleiche Namen bilden Gruppenelemente.

        627

        B HTML-Referenz 왘 VALUE=string

        Enthält:

        Wert, bei radio, hidden und file der zu sendende Text, bei text der Wert, der im Feld erscheint und überschrieben werden kann. Bei Checkbox nicht benutzt, bei submit, reset und button der Text, der auf dem Schalter steht. 왘 SIZE=n Die Ausdehnung in Standardzeichen. 왘 MAXLENGTH=n Die maximale Länge des Textfeldes. Wenn SIZE=n grö ß er als MAXLENGTH ist, scrollt das Textfeld horizontal. 왘 SRC=URL Quelle bei image. 왘 ALIGN=top|middle|bottom|left|right Ausrichtung des Elementes gegenüber dem umliegenden Text. nichts

        TEXTAREA

        Elemente zum Erfassen längerer Texte in einem mehrzeiligen Feld. Die Tags können einen Text umschließen, der als Standardwert im Textfeld erscheint. Syntax:

        Attribute:

        NAME=string, ROWS=n, COLS=n. Dabei bedeutet: 왘 NAME=string

        Name des Textfeldes 왘 ROWS=n

        Enthält:

        Anzahl der Reihen (Zeilen) 왘 COLS=n Anzahl der Spalten in Standardzeichen Text als Vorauswahl (Standard)

        SELECT und OPTION

        Erlaubt eine Auswahl aus einer Liste von Elementen. Kann ein DropdownMenü bilden oder eine einfache Liste. Syntax:



        Attribute:

        Für : NAME=string, SIZE=n, MULTIPLE Dabei bedeutet: 왘 NAME=string

        Name des Feldes.

        628

        HTML 3.2 왘 SIZE=n

        Anzahl der Zeilen, die gleichzeitig sichtbar sind. Hat das Feld mehr Elemente, wird ein Rollbalken angezeigt. 왘 MULTIPLE Erlaubt die Mehrfachauswahl mit den entsprechenden Tasten, die das Betriebssystem dafür vorsieht (unter Windows (ª) und (Strg) mit linker Maustaste). Für : VALUE=string, SELECTED Dabei bedeutet: 왘 VALUE=string

        Enthält:

        Wert, der bei der Selektion des Feldes übergeben wird. 왘 SELECTED Feld ist von vornherein schon markiert. innerhalb . Text nach jedem -Tag, schließendes Tag optional.

        HR

        Horizontal Rule. Horizontale Linie als optische Trennung zwischen Elementen. Syntax:

        Attribute:

        ALIGN=left|right|center, NOSHADE, SIZE=n, WIDTH=n|p%

        Dabei bedeutet: 왘 ALIGN=left | right | center

        Enthält:

        Ausrichtung 왘 NOSHADE Das Element nicht dreidimensional schattieren 왘 SIZE=n Dicke in Pixeln 왘 WIDTH=n|p% Breite in Pixeln oder Breite in % des Browserfensters nichts

        Tabellen und Tabellenelemente TABLE

        Definiert eine neue Tabelle. Die Tabelle muss mit Reihenelementen und Zellenelementen komplettiert werden, die im folgenden beschrieben werden. Tabellen dürfen verschachtelt werden, das heißt, innerhalb einer Zelle kann wieder eine komplette Tabelle erzeugt werden. Syntax:



        Attribute:

        ALIGN=left|right|center, CELLSPACING=n, CELLPADDING=n,

        629

        B HTML-Referenz

        BORDER=n, SIZE=n, WIDTH=n|p%

        Dabei bedeutet: 왘 ALIGN=left | right | center

        Ausrichtung 왘 BORDER=n

        Rand um die gesamte Tabelle in Pixeln 왘 CELLPADDING=n

        Enthält:

        Abstand des Textes in einer Zelle vom Rand der Zelle 왘 CELLSPACING=n Abstand der Zellen voneinander 왘 WIDTH=n|p% Breite in Pixeln oder Breite in % des Browserfensters nichts Die folgenden Elemente erscheinen nur innerhalb einer Tabellendefinition
        .

        CAPTION

        Schreibt eine Überschrift über oder unter die Tabelle, in der das Tag steht. Dieses Tag sollte direkt hinter stehen, noch vor dem ersten . Syntax:

        Attribute:

        ALIGN= top|bottom

        Ausrichtung der Überschrift oben oder unten. Enthält:

        Text und Textelemente

        TH

        Table Header. Bildet die Überschrift einer Tabelle. Funktioniert wie , schreibt den enthaltenen Text fett. Syntax:



        Attribute:

        ROWSPAN=n, COLSPAN=n, NOWRAP, ALIGN=left|right|center, VALIGN=top|middle|bottom, WIDTH=n, HEIGHT=n

        Die Beschreibung der Attribute finden Sie bei . Enthält:

        verwenden. erscheint nur hinter und
        oder


        TR Table Row. Bildet die Reihe einer Tabelle. Sie können beliebig oft
        oder als erstes Element hinter .

        630

        Syntax:



        Attribute:

        ALIGN=left|right|center, VALIGN=top|middle|bottom

        HTML 3.2

        Beschreibung der Attribute: 왘 ALIGN=left|right|center

        Ausrichtung des Textes links, rechts, mittig 왘 VALIGN=top|middle|bottom

        Vertikale Ausrichtung des Textes oben, mittig, unten. Enthält:



        Attribute:

        ROWSPAN=n, COLSPAN=n, NOWRAP, ALIGN=left|right|center, VALIGN=top|middle|bottom, WIDTH=n, HEIGHT=n

        Beschreibung der Attribute: 왘 ROWSPAN=n

        Enthält:

        Verbindet die aktuelle Zelle über n Reihen zu einer großen Zelle 왘 COLSPAN=n Verbindet Zellen der aktuellen Reihe über mehrere Spalten 왘 NOWRAP Kein automatischer Zeilenumbruch des enthaltenen Textes 왘 ALIGN=left|right|center Ausrichtung des Textes links, rechts, mittig 왘 VALIGN=top|middle|bottom Vertikale Ausrichtung des Textes oben, mitte, unten 왘 WIDTH=n Breite der Reihe in Pixeln (Minimum) 왘 HEIGHT=n Höhe der Reihe in Pixeln (Minimum)


        TD Table Cell Definition. Bildet die Zellen innerhalb einer Reihe der Tabelle. Sie können beliebig oft
        verwenden. Achten Sie darauf, dass Sie in jeder Reihe die gleiche Anzahl Zellen definieren oder Zellen mit den SPAN-Attributen so zusammenfassen, dass die gleiche logische Anzahl Zellen angegeben wird.

        Syntax:



        Textbezogene Elemente Mit diesen Elementen kann Text vielfältig formatiert und strukturiert werden. Die Einteilung kann in drei Klassen vorgenommen werden: Hervorhebungen mit logischer Bedeutung (auf die Struktur bezogen):

        631

        B HTML-Referenz 왘 EM – Hervorhebung 왘 STRONG – Starke Hervorhebung 왘 DFN – Definition 왘 CODE – Code 왘 SAMP – Beispieltext 왘 KBD – Taste 왘 VAR – Variable 왘 CITE – Kurzzitat

        Physische Formatierung des Textes: 왘 TT – Unformatiert 왘 I – Kursiv 왘 B – Fett 왘 U – Unterstrichen 왘 STRIKE – Durchgestrichen 왘 BIG – Groß 왘 SMALL – Klein 왘 SUB – Tiefgestellt 왘 SUP – Hochgestellt

        Spezialmarkierungen zur Navigation 왘 A – Anker 왘 BASEFONT – Standardfont 왘 IMG – Bild 왘 APPLET – Java Applet 왘 PARAM – Parameter für Applets 왘 FONT – Font (Schriftart- und -form) 왘 BR – Zeilenumbruch 왘 MAP – Bild mit Navigationsinformationen 왘 AREA – Gebiet mit Navigationsinformationen im Bild

        EM

        Emphasized. Text hervorheben, in den meisten Browser kursiv. Dieses Element ist ein strukturelles Element und sollte nicht verwendet werden, wo aus optischen Gründen kursiv geschrieben wird. Benutzen Sie besser .

        632

        HTML 3.2

        Syntax:

        STRONG Strongly emphasized. Text stärker hervorheben als mit . Wird meist durch fette Schrift dargestellt. Um nur aus optischen Gründen fett zu schreiben, ist besser zu verwenden.

        Syntax:



        DFN Definition. Eine Definition, beispielsweise einer Abkürzung, wenn diese das erste Mal benutzt wird. Meist kursiv, siehe Hinweise bei .

        Syntax:

        CODE Nutzt einen nichtproportionalen Font für die Hervorhebung von Programmcode. Wenn der Text über mehrere Zeilen läuft, ist besser geeignet.

        Syntax:

        SAMP Beispieltext, meist ein nichtproportionaler Font für die Hervorhebung von Fehlermeldungen.

        Syntax:

        KBD Ebenso eine Kennzeichnung, diesmal für Tastatureingaben (ENTER, STRG etc.). Bei den meisten Browsern kein Effekt.

        Syntax:

        VAR Ebenso eine Kennzeichnung, diesmal für Variablen (a, name, x etc.). Bei den meisten Browsern kursiv.

        Syntax:

        CITE Ebenso eine Kennzeichnung, diesmal für Zitate (RFC 1845 etc.). Bei den meisten Browsern erfolgt die Darstellung kursiv.

        Syntax:

        TT Schreibt in einem nichtproportionalen Font, beispielsweise für die Darstellung von Bildschirmausgaben. Im Gegensatz zu werden überzählige Leerzeichen entfernt und ein normaler Zeilenumbruch benutzt.

        Syntax:

        633

        B HTML-Referenz

        I

        Formatiert Text kursiv. Syntax:

        B Formatiert Text fett.

        Syntax:

        U Formatiert Text mit Unterstrich. Sollten Sie mit Vorsicht verwenden, da normalerweise Links unterstrichen erscheinen und sich Nutzer davon irritiert fühlen könnten, da unterstrichene Passagen nicht verlinkt sind.

        Syntax:

        STRIKE Streicht Text durch.

        Syntax:

        BIG Formatiert Text eine Stufe grö ß er als der Grundfont. Siehe auch .

        Syntax:

        SMALL Formatiert Text eine Stufe kleiner als der Grundfont. Siehe dazu auch .

        Syntax:

        SUB Stellt Text tiefer (Beispiel: C2H5OH)

        Syntax:

        SUP Stellt Text höher (Beispiel: m2)

        Syntax:

        A Anchor. Anker-Tag. Das wichtigste Tag für Hypertext. Damit werden Marken im Text definiert, zu denen gesprungen werden kann, und damit werden auch die eigentlichen Hyperlinks definiert.

        634

        Syntax:

        Attribute:

        Entsprechen dem Tag . Siehe dort.

        Enthält:

        Text, der als Hyperlink formatiert erscheint und anklickbar

        HTML 3.2

        ist BASEFONT

        Stellt den Standardfont für das gesamte Dokument ein. Es ist zu empfehlen, statt FONT oder BASEFONT Style Sheets zu benutzen. Syntax:

        Attribute:

        SIZE=n. Grö ß e in Werten von 1 bis 7

        IMG

        Einbindung eines Bildes in die Seite. Standardmäß ig werden GIF und JPEG von allen Browsern unterstützt. Syntax:

        Attribute:

        SRC=URL, ALT=string, ALIGN=left|right|top|middle|bottom, HEIGHT=n, WIDTH=n, BORDER=n, HSPACE=n, VSPACE=n, USEMAP=URL, ISMAP.

        Dabei bedeuten im Einzelnen: 왘 SRC=URL

        Position der Bildquelle als URL 왘 ALT=string













        Alternativer Text, wenn das Bild nicht angezeigt wird, und bei neueren Browsern als Hilfstext, wenn die Maus über dem Bild schwebt. ALIGN= Ausrichtung des Bildes auf der Seite oder innerhalb des umgebenden Containers. HEIGHT=n Höhe in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. WIDTH=n Breite in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. BORDER=n Rand (blau) rund um das Bild. Bilder, die als Link (innerhalb ) benutzt werden, haben immer einen 2Pixel-Rand, der mit BORDER=0 unterdrückt werden kann. Alle anderen Bilder haben keinen Rand. HSPACE=n Horizontaler Abstand in Pixeln, der links und rechts vom Bild erscheint. VSPACE=n. Vertikaler Abstand in Pixeln, der oben und unten vom Bild erscheint.

        635

        B HTML-Referenz 왘 USEMAP=URL. ISMAP.

        Siehe unter MAP. APPLET und PARAM

        Einbindung eines Java- oder ActiveX-Applets. Syntax:

        ...

        Attribute:

        CODEBASE=URL, CODE=string, NAME=string, ALT=string, ALIGN=left|right|top|middle|bottom, HEIGHT=n, WIDTH=n, HSPACE=n, VSPACE=n.

        Dabei bedeuten: 왘 CODEBASE=URL

        Die Position des Applets 왘 CODE=string

        Angesprochene Klasse im Applet 왘 NAME

        Name des Applets 왘 ALT=string Alternativer Text, wenn das Applet nicht angezeigt wird, weil der Browser keinen Interpreter hat. 왘 ALIGN= Ausrichtung des Applets auf der Seite oder innerhalb des umgebenden Containers. 왘 HEIGHT=n Höhe in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. 왘 WIDTH=n Breite in Pixeln. Der Wert ist endgültig, anders formatierte Bilder werden gestaucht oder gestreckt. 왘 HSPACE=n Horizontaler Abstand in Pixel, der links und rechts vom Bild erscheint. 왘 VSPACE=n Vertikaler Abstand in Pixel, der oben und unten vom Bild erscheint. Für die Parameter : 왘 NAME=string

        Name des Parameters (vom Applet abhängig). 왘 VALUE=string

        Wert des Parameters (vom Applet abhängig).

        636

        HTML 3.2

        FONT

        Änderungen der Darstellung des Schriftfonts. Syntax:

        Attribute:

        SIZE=string, COLOR=#RRGGBB, FACE=string

        Dabei bedeuten die Attribute im einzelnen: 왘 SIZE=string

        Grö ß e des Fonts in Einheiten 1..7 왘 COLOR=#RRGGBB Farbe in RGB-Einheiten oder Standardfarbwerten, beispielsweise COLOR=red. 왘 FACE=Schriftart (nicht offiziell HTML 3.2). Nicht von allen Browsern unterstützt. Font muss lokal vorhanden sein. Sie können mehrere Schriften, durch Kommata getrennt, angeben. BR

        Break. Einfacher Zeilenumbruch. Syntax:




        Attribute:

        CLEAR=left|all|right|none

        Hat nur Gültigkeit, wenn der Text um ein Bild herum fließt und mit
        formatiert wird. Dann stellt das Attribut sicher, wie der Zeilenumbruch sich am Bild verhält. Mit CLEAR wird der Zeilenumbruch so gesetzt, dass der Text unterhalb des Bildes weitergeführt wird. MAP und AREA, ISMAP und USEMAP

        Definition und Kontrolle eines Navigationsfeldes. Einem Bild werden zusätzliche Informationen unterlegt, so dass die Maus über diesem Bild auf Gebiete reagiert und der Browser Links ausführt. Syntax:



        Attribute:

        NAME=string

        Name des Navigationsfeldes. Für : SHAPE=rect|circle|poly|default, COORDS=string, NOHREF|HREF=URL, ALT=string. Es gilt: 왘 SHAPE=

        Gebiet in Pixeln auf dem Bild, das den Link unter HREF ausführt. Kann mit den entsprechenden COORDS-Werten sein:

        637

        B HTML-Referenz 왘 ="Rect" COORDS="xl,yl,xr,yr"

        Rechteck 왘 ="Circle" COORD="x,y,radius"

        Kreis 왘 ="Poly" COORD="x,y x2,y2 x3,y3, x4,y4"

        Polygon (Vieleck) mit mehreren Wertepaaren. Der letzte Wert wird mit dem ersten verbunden.

        638

        HTML 4 왘 ="Point" COORD=x",y"

        Eizelner Punkt; ziemlich sinnlos. 왘 Default

        Standard, kein besonderes Gebiet, sondern die angegebene HREF wirkt auf alle nicht erfassten Gebiete. Hinweise zu ISMAP und USEMAP. Der im angegebene Name bezieht sich auf ein Unterstützungsprogramm auf dem Server. Der Name in wird verwendet, um mit darauf zuzugreifen.

        B.1.4

        Liste der Elemente

        Neue strukturelle Elemente in HTML 4 sind: 왘 ABBR und ACRONYM 왘 DEL 왘 INS 왘 SPAN

        Auch um gestalterische Elemente wurde HTML 4 erweitert: 왘 COL, COLGROUP, THEAD, TBODY, TFOOT, TABLE 왘 BDO 왘 FRAMESET, FRAME, IFRAME und NOFRAME 왘 OBJECT 왘 Q 왘 S

        Zusätzliche Formularelemente in HTML 4: 왘 BUTTON 왘 FIELDSET, LEGEND 왘 OPTGROUP (SELECT, OPTION)

        B.2

        HTML 4

        B.2.1

        HTML 4 – Einführung

        Hier werden nur die Elemente beschrieben, die es in HTML 3.2 noch nicht gab oder die grundlegend verändert wurden. Zuerst eine alphabetische Übersicht. Die Versionsnummer der HTML-Norm (3 bzw. 4) korrespondiert nicht mit denen der Browser. So beherrschen die Browser der Version 2 fast HTML 3.2, die Version 3-Browser einen Teil der HTML 4-Spezifikation (wie Frames) und die Version 4-Browser beherrschen HTML 4 mit vielen individuellen Erweiterungen und teilweise auch Einschränkungen. Die Browser der Version 5 beherrschen fast alle HTML 4-Elemente.

        639

        B HTML-Referenz

        B.2.2

        Liste der Elemente

        Hier ist eine Liste aller neuen Tags. Die meisten Tags erlauben außerdem die Angabe von Styleattributen (siehe CSS), ohne dass dies bei jedem Tag immer wieder erwähnt wurde. Hier eine alphabetische Liste: 왘 ABBR – Abkürzung 왘 ACRONYM – Akronym 왘 BDO – Wechsel der Schreibrichtung 왘 BUTTON – Schalter 왘 COL – Spalte 왘 COLGROUP – Spaltengruppe bei Tabellen 왘 DEL – Gelöschter Text 왘 FIELDSET – Gruppierung von Elementen bei Formularen 왘 FRAME – Frame 왘 FRAMESET – Frameset 왘 IFRAME – Eingebetteter Frame 왘 INS – Eingefügter Text 왘 LABEL – Marke in Formularen 왘 LEGEND – Überschrift eines FIELDSET 왘 NOFRAMES – Bereich ohne Frames 왘 NOSCRIPT – Alternative zu Script 왘 OBJECT – Objekt 왘 OPTGROUP – Optionsgruppe (SELECT) 왘 Q – Kurzes Zitat 왘 S – Durchgestrichener Text 왘 SPAN – Generischer Container 왘 TBODY – Tabellenkörper 왘 TFOOT – Tabellenfuß 왘 THEAD – Tabellenkopf

        640

        HTML 4

        B.2.3

        Neue strukturelle Elemente in HTML 4

        ABBR und ACRONYM

        Abbreviation, Acronym. Abkürzung und Akronym (aussprechbare Abkürzung wie „Laser“). Dient nur zur strukturellen Aufarbeitung. Browser zeigen nur den Text zwischen den Tags an. Syntax:



        Attribute:

        TITLE=string Ausgeschriebene Abkürzung

        DEL

        Deleted. Kennzeichnet Text als gelöscht. Der Text erscheint oft durchgestrichen und kann mit zusätzlichen Attributen markiert werden. Suchmaschinen und andere Indizes sollten den Text nicht mehr berücksichtigen. Syntax:

        []

        Attribute:

        왘 CITE=grund

        Grund der Löschung 왘 DATETIME=Zeitangabe Datum der Löschung INS

        Inserted. Kennzeichnet Text als eingefügt. Der Text erscheint oft unterstrichen und kann mit zusätzlichen Attributen markiert werden. Suchmaschinen und andere Indizes sollten berücksichtigen, dass der Text neu ist. Syntax:

        []

        Attribute:

        왘 CITE=grund

        Grund der Einfügung 왘 DATETIME=Zeitangabe

        Datum der Einfügung SPAN SPAN hat selbst keine Funktion, außer einen generischen Container für Cascading Style Sheets und allgemeine Attribute wie LANG oder DIR zu bilden.

        Syntax:



        Attribute:

        keine

        Gestalterische Elemente in HTML 4 COL, COLGROUP, THEAD, TBODY, TFOOT, TABLE

        Definition einer Spalte und einer Gruppe von Spalten innerhalb einer Tabelle. Kann nur in
        auftreten. Mit werden Spalten zu Gruppen zusammengefasst, Inhalt können nur -Tags sein. Das Tag muss nach stehen (wenn verwendet) und vor . Der Kopf-

        641

        B HTML-Referenz

        bereich einer Tabelle kann nun mehrere Zeilen umfassen und wird mit umfasst. enthält die eigentlichen Reihen mit Daten. Sie können mehrfach anwenden. Am Ende der Tabelle kann eine Gruppe von Reihen mit umfasst werden. Der Sinn ist eine Zuweisung von Styleinformationen zu logischen Tabelleneinheiten, anstatt zu jeder einzelnen Tabelle. Syntax:











        Attribute:

        Mehrere Attribute für COL und COLGROUP mit folgender Bedeutung: 왘 SPAN=zahl

        Anzahl der zusammengefassten Spalten 왘 WIDTH=pixel|% Breite der Spalte Die folgenden Attribute gelten für COL, COLGROUP und THEAD, TBODY und TFOOT: 왘 ALIGN=[left|center|right|justify|char]

        Ausrichtung des Textes in der Spalte 왘 CHAR=zeichen

        Zeichen, nach dem ausgerichtet wird 왘 CHAROFF=zahl Abstand, auf das Ausrichtungszeichen bezogen 왘 VALIGN=[top|middle|bottom|baseline] Vertikale Lage des Textes in der Spalte

        642

        HTML 4

        BDO

        Bidirectional Override. Ändert die Schreibrichtung. Deutsch verläuft normal von links nach rechts, Hebräisch von rechts nach links. Dieses Tag ändert die Richtung. Syntax:

        Attribute:

        DIR=ltr|rtl. Richtung, ltr=left to right, rtl=right to left LANG=Sprachcode. en, de usw.

        Elemente für Frames FRAMESET, FRAME, IFRAME und NOFRAME

        Ein Frameset definiert eine Gruppe von Frames. Frames sind rechteckige Unterteilungen des Browserfensters. Jede Unterteilung hat eine eigene Datenquelle (HTML-Datei oder Skriptdatei). Syntax:





        ...

        siehe Active Server Pages Aufbau des Internets 59 Aufgabenverwaltung 477 Auflösung 318 Aufzählungen 147, 419 Aufzählungszeichen 419 Auschecken 247 Ausrichtung in Tabellen 387 AVI-Video 463

        :B

        Backslash 133 Bannernetzwerke 108 Bannertauschprogramme 107 BASEFONT 126 Basisadresse 35 Basisfont 126 Befreiungslink 100 Behinderte 317

        Benutzervariablen -> siehe Meta-Informationen Benutzerwörterbuch 289 Berichte Alle Dateien 359 Ältere Seiten 352 Spalten anpassen 359 Spaltenbreite anpassen 359 Unterbrochene Hyperlinks 359 Unverknüpfte Dateien 357 Veröffentlichungsstatus 367 Betatest 366 Betriebssysteme Amiga 310 BeOS 310 DOS 311 erlaubte Zeichen 311 FreeBSD 237 Linux 237 MacOS 310 MS-DOS 311 OS/2 310 Unix 237 Windows 310 Windows 3.11 311 BIG 128 Bilddatenbanken 337 Bildeditoren konfigurieren 339 Bildeigenschaften 338 Bilder 135 Abstände 340 ausrichten 339 beschneiden 345 Bildgröße einstellen 340 Farben anpassen 344 in FrontPage bearbeiten 341 kippen 343 Miniaturvorschau 342 mit Texten versehen 341 nach Zeitplan einschließen 451 rotieren 343 Seitenverhältnis 340 Übergangseffekte 452 umwandeln 338 vorbereiten 336 Bildlaufleisten 416 Bildschirmauflösung 318 Bildschirmtastatur 317 Body 254 BR 122 Broadcast 71

        664

        Broadcast-Adresse 71 Browser HotJava 315 Internet Explorer 315 Lynx 317 Opera 315 Browserprobleme 175

        :C

        Cache 265 CAPTION 152 Cascading Stylesheets 166, 423 case-sensitive 311 ccTLD 63 CENTER 123 CGI 57, 442 Chat 110 ClipArt-Sammlungen 337 Common Gateway Interface -> siehe CGI CompuServe 330 Corporate Design 320 Country Code Top-Level Domain 63 CSS -> siehe Cascading Stylesheets

        :D

        Dateien ein- und auschecken 248 in Webs importieren 235 löschen 197 umbenennen 197 verborgene 242 verschieben 197 Dateiformate, andere 462 Dateinamen, Groß- und Kleinschreibung 258 Dateitypen 259 Datenbankfunktionen 584 Definitionen 421 Department of Defense 62 Designregeln 99 Designs anpassen 346 Design-Time-Controls 584 DHTML -> siehe Dynamic HTML Digitalkamera -> siehe Scannen Dithering 136, 320 DIV 176 DoD 62 Downloaddauer 322 Draft 66 Dynamic Fonts 312 Embeddable OpenType 312 TrueDoc 312 Dynamic HTML 424 Dynamisches HTML 178

        Stichwortverzeichnis

        :E

        Einchecken 247 Eingabehilfen 317 Electronic-Mail 60 E-Mail 60 E-Mail-Protokolle, POP3 90 Entwurfszeit-Steuerelemente 466 Ersetzen, webweit 352 ESMTP 87 Excite 106 Experimental 66 Extranet 62

        :F

        Fallen in HTML 117 FAQ 211 Farbcodierung 28 Farbe 120 auswählen 283 Hexadezimalcode 284 Text 282 websichere Farben 283 Farbmodell 284 Farbtiefe 319 Fehler-Checkliste 351 File Transfer Protocol 60, 81 Authentifizierung 82 Datenstruktur 84 Kommandos 81 Statuscodes 84 File Transfer Protocol -> s. FTP Firmenpräsenzweb 213 FONT 126 FORM 140 Formulare 139, 391 Behandlungsroutinen 393 Beschriftung 399 Bild 407 Dropdownmenü 404 Kontrollkästchen 401–402 Optionsfeld 403 Schaltfläche 405–406 Skripte aufrufen 393 Textfeld mit Bildlauf 400 Textfelder 399 Verborgene Felder 398 fpdbform.inc 585 fpdblib.inc 585 fpdbrgn1.inc 585 Frames 161 Abstand 417 ältere Browser 414 Eigenschaften 415 Framesseite 417 Grö ß e 415

        Stichwortverzeichnis

        Hyperlinks 417 Rahmen 417 Zielframes 417 FRAMESET 164 Frameset 411 FrontPage_StartSession 586 FrontPage-Designs 346 FrontPage-Erweiterungen Sharepoint-Verwaltung 47 Virtueller Server 45 Vorbereitung 43 FrontPage-Komponenten 39, 441–442 ActiveX 40 Anzeigenwechsler 451 ASP 41 Datum und Uhrzeit 458 Eigenschaften anpassen 443 Entwurfszeit 41 Ersetzen 457 Hoverschaltfläche 452 HTML 41 HTML-Markup 460 Inhaltsverzeichnis 443 Java 40 Kommentar 457 Nach Zeitplan einschließen 450 Navigationsleisten 446 Office Chart 455 Office-Komponenten 453 Pivot Table 455 Seiten einschließen 449 Seitenbanner 448 Suchformular 445 Übersicht 39 Zugriffszähler 456 FTP 60, 81, 305 Passiver Modus 84 Transfer-Modus 84

        :G

        Gästebücher 110 Gemeinsame Randbereiche 449 General-Header-Fields 79 Geschachtelte Nachrichten 96 GIF 135, 330 animierte 332 Farbpalette 331 Interlacing 331 Transparenz 331 Transparenz festlegen 345 unsichtbare 138 Glätten 321 global.asa 585 gopher 305 Graphic Interchange Format -> siehe GIF

        665

        Grundbegriffe 58 Gateways 59 Internet 59 PoP 59 Provider 59 Router 59 Gültigkeitsprüfung 392

        :H

        H1...H6 129 Handys 311 Hauptbenutzernamensliste 479 Head 254 Hilfslinien 389 Hintergrund, Eigenschaften 262 Hintergrundbilder 137 Hintergrundsound 261 Hits 325 HR 125 HTML 60, 115 Code strukturieren 273 Einführung 115 Farbcodierung 28 Version 3.2 253 HTML pur 119 HTML-Formulare 139 HTML-Tags Attribute 254 blink 288 blockquote 278 body 254 br 277 Definition 253 Head 254 p 277 tt 288 Überschriften 280 HTML-Tags -> siehe Tags HTTP 76 Hyperlinkansicht 207 Hyperlinks 132, 306 absolute 256 externe 361 relative 256 unterbrochene 209 webübergreifend ersetzen 361 Hypertext 252 Hypertext Transfer Protocol 76 Message-Header 78 Statuscodes 78

        :I

        IANA 63, 72 ICANN 63 Image Maps 159 Importliste 236

        666

        Indexseite 99 Inhaltsverzeichnis 443–444, 451 INPUT 142 International Organization for Standardization 63 Internet Assigned Number Authority 63 Internet Assigned Numbers Authority 72 Internet Corporation for Assigned Names and Numbers 63 Internet Protocol Broadcast 69 Datagramm 68 Fragmentierung 68 Multicast 69 Subnetze 70 Unicast 69 Internet Protocol Suite 62 Internet Protocol Version 4 69 Internet Protocol Version 6 70 Internet Relay Chat 61 Internetzugang DSL 321 Geschwindigkeit 321 Intranet 61 IP 75 IP-Adressen, Adressversionen 69 IPS 62 IPv4 69 IPv6 70 IRC 61 ISAPI 58 ISO 63 ISO/OSI-Referenzmodell 63

        :J

        Java-Applets 461 JavaScript 242 Joystick 317 JPEG 136, 333 Optimierungsdurchläufe 339 progressive 334 Qualität 339

        :K

        Kategorien 478 erstellen 479 Laufschrift 459 verwalten 479 Klasse-A-Netz 71 Klasse-B-Netz 71 Klasse-C-Netz 71 Klasse-D-Netz 71 Kodak PhotoCD -> siehe PhotoCD Kommentar 224 Kundenbindung 109

        Stichwortverzeichnis

        :L

        Layer 435 Leerzeichen 273 LI 148 Linien 125 horizontale 125 Links 132, 252 Listen 147, 418 Aufzählungen 419 Definitionen 421 geordnete 419 Nummerierungen 420 ungeordnete 419 Lizenzbestimmungen 337 Lizenzen 355 Loopback 71

        :M

        Mailinglisten 109 Markenrecht 355 Marketing-Mix 102 Masterkategorienliste 479 Mehrautorenumgebung 479 Mehrbenutzersystem 247 Meta-Informationen 264, 271 Generator 264 ProgId 264 META-Tags 99 MIME 92 MIME-Typen 92 Miniaturvorschau 342 Modemgeschwindigkeit 321, 363

        :N

        Navigation Baumstruktur 447 lineare 447 Navigationsansicht 202 Seiten löschen 223 Übersicht 475 Navigationsleiste 203 Network News Transfer Protocol 96 Netzwerkklassen 70 News, Threadverfolgung 98 NNTP 96 NNTP-Protokoll -> siehe Usenet News Normalansicht 195 NSAPI 58 Nummerierungen 420

        :O

        Oberfläche anpassen 25 Oktett 69 OL 149 Online-Marketing 101

        Stichwortverzeichnis

        Online-Verkauf 102 Optimieren für Behinderte 317 für Browser 314 Hardware 318 Seitengrö ß e 321 Websites 310 Ordner im Web verschieben 238 in Webs importieren 235 löschen 197 neu erstellen 197 umbenennen 197 verborgene 242 vereinheitlichen 194 verschieben 197 Ordneransicht 193

        :P

        P 123 Palmtops 311 PDF 335 PDF -> s. Adobe Acrobat Perl 57 PhotoCD 336 Plug-Ins 462 PNG 335 Port 73 Port- und Protokollnummern 73 Portbezeichnung 74 Positionierung 435 PRE 123 Proposed Standard 66 Protokoll, verbindungsloses 76 Protokollnummern 75

        :Q

        Quellcodekontrolle 247 Quellenverweis 355

        :R

        Randbereiche 449 Rasterung 136 Rechtliche Aspekte 355 Rechtschreibprüfung Benutzerwörterbuch 290 manuelle 290 während der Eingabe 289 webweite 356 Relative Positionierung 435 Request For Comments 66 Stufen 66 Request-Header-Fields 79 Reseau IP Europeens 72 Reservierte Adressen 71 Response-Header-Fields 79

        667

        RFC 66 RFC 1036 98 RFC 1350 81 RFC 1939 90 RFC 1945 76 RFC 1957 90 RFC 2045 92 RFC 2046 92 RFC 2077 94 RFC 2236 71 RFC 2821 87 RFC 2980 96 RFC 822 92 RFC 850 98 RFC 913 81 RFC 959 81 RFC 977 96 RGB-Format 121 RIPE NCC 72 Robot 100 Rollover 303

        :S

        Scannen 336 Schichtenmodell 64 Schlüsselworte 99 Schrift Dynamic Fonts 312 Farben 282 formatieren 126 plattformübergreifend 312 Schriftarten 281 Schriftgrade 282 Schriftschnitte 282 Sonderzeichen 313 TrueDoc 312 Seiten Dateinamen 258 für verschiedene Plattformen 310 kennzeichnen 367 neu erstellen 196, 257 speichern 258 Titel 258 Seitenabrufe -> siehe Hits Seitenbanner 448 Seitencodierung 243 Seiteneigenschaften 417 allgemeine 261 Codierung 269 Farben 268 Hintergrund 262 Sprache 269 übernehmen 269 Variablen 271 Seitenoptionen 26 SELECT 142

        668

        Selektoren 427 Server Side Includes -> s. SSI Server, Startseite 195 SharePoint-Verwaltungssite 47 Shockwave 318 Simple Mail Transfer Protocol 87 Sitzungslose ASP-Seiten 604 Skriptcodes, Farbcodierung 28 Skript-Editor 601 Skriptgliederung 603 Skriptingplattformen 36 Skriptsprache 242 Slideshows 265 SMALL 128 SMTP 87 Socket 73, 75 Sonderordner 248 Sonderzeichen 131, 313 geschütztes Leerzeichen 274 NBSP 274 Spalten 379 SPAN 176 Spider 265 Spracheinstellung 289 Sprachen 289 festlegen 289 SSI 442 Standard-ASCII-Tabelle 131 Standardweb 195 Startseite, Standardnamen 358 STRIKE 129 Strukturbaum 205 STYLE 166 Stylesheets 423 anpassen 430 definieren 428 eingebettete 427 externe 426 Inline-Stylesheets 427 Positionierung 435 Selektoren 427 Typen 426 verknüpfen 426 SUB 130 Subnetze 70 Subnetzmaske 70 Suchbegriffe anpassen 366 Suche, webweite 352 Suchfunktion 445 Suchmaschinen 105 SUP 130 Symbolleisten 22 anpassen 23 Synonyme 291 Systemvariablen -> s. Meta-Informationen

        Stichwortverzeichnis

        :T

        Tabelle 150 Abstände 380 anlegen 379 bearbeiten 383 Dokumentvorlagen 390 Eigenschaften 388 einfügen 379 formatieren 388 markieren 383 Rahmen 380 umwandeln 389 zeichnen 381 Zellen formatieren 387 Zellen verbinden 384 Tabellenattribute 155 Tabellenüberschrift 152 TABLE 151 Tabstopp 273 Tags 253 Tastatureinstellung 243 TCP, Kapselung der Daten 65 TCP/IP 75 TD 151 Telnet 60, 305 Text aus anderen Anwendungen 276 ausschneiden 275 einfügen 276 in Tabellen umwandeln 390 kopieren 276 löschen 275 markieren 275 verschieben 276 Text und Ausrichtungen 121 TEXTAREA 143 Textfelder 143 Textmarken #top 306 Textstrukturierung 154 TH 151 Thesaurus 291 Thread (NNTP) 98 TIFF 335 Tippfehler 366 TR 151 Transaktionen aktivieren 604 Transmission Control Protocol Multiplexing 73 Typografie 328

        :U

        Überschriften 280 UL 148 Umlaute 131 Unterbaum 477

        Stichwortverzeichnis

        Unterschneidung -> siehe Zeichenabstand Unterwebs 199 veröffentlichen 238 Urheberrecht 355 Usenet News 305

        :V

        VBScript 242 Vektorgrafiken ClipArt 293 WMF 294 Versteckte Felder 145 Verzeichnisstruktur 248 Video 463 Virtuelle Server 112 Visual InterDev 20, 602 Vorschauansicht 195 Vorschaumodus 212

        :W

        wais 305 Web-Assistenten 213 WebBots -> siehe FrontPage-Komponenten Webcrawler 107 Webimport-Assistent 231 Web-Management 471 Webs als Unterwebs importieren 237 Assistenten 213 Dateien importieren 235 Diskussionsweb 225 erstellen 190 Firmenpräsenzweb 213 FrontPage-Ordner 193 konfigurieren 240 konvertieren 199

        669

        Kundenunterstützungs-Web 210 Optionen 241 Ordner importieren 235 Parameter 244 planen 471 schließen 200 Seiten importieren 231 Struktur 193 strukturieren 476 synchronisieren 367 Unterwebs 199 veröffentlichen 368 Verzeichnisstruktur 248 Vorlagen 200 Webseitengestaltung 99 WebTV 311 Webvorlagen 200 Leeres Web 201 Persönliches Web 201 Wechsel 277 Werbenetzwerke 108 Werbung 105 Windows Meta File -> siehe Vektordateien World Wide Web 60 WWW 60

        :Y

        Yahoo 107

        :Z

        Zeichenabstand 431 Zeilen 379 Zellen 386 Zielobjekt 209 Z-Ordnung 435 Zugriffsberechtigungen 246