Richard Beer, Susann Gailus Adobe Dreamweaver CS4 Das umfassende Handbuch Galileo Press
Vorwort 23 TEIL I Grundlagen 1 Einleitung 27 1.1 Für die Leser 27 1.1.1 An wen richtet sich dieses Buch? 27 1.1.2 Welche Vorkenntnisse benötigen Sie? 27 1.1.3 Warum wir in diesem Buch auf dem PC arbeiten 28 1.2 Was ist Dreamweaver und was nicht? 29 1.2.1 Keine HTML-Kenntnisse erforderlich? 30 1.2.2 Anforderungen an einen professionellen HTML-Generator 30 1.2.3 Warum Dreamweaver? 31 1.2.4 Grenzen von Dreamweaver 32 1.2.5 Systemanforderungen von Dreamweaver CS4 32 1.3 Was ist neu in Dreamweaver CS4? 33 2 Projektablauf für die Buchwebsite 35 2.1 Briefing 36 2.2 Arbeitsablauf 38 2.3 Das Layout 39 2.3.1 Entwurf in Photoshop 40 2.3.2 Dreamweaver und Fireworks 41 3 Programmgrundlagen 43 3.1 Die Programmoberfläche 44 3.1.1 Verschiedene Anzeigemöglichkeiten 44 3.1.2 Anpassen der Bedienfeldgruppen 47 3.1.3 Platz zum Arbeiten schaffen 47 3.1.4 Einfügeleiste anpassen 48 3.1.5 Das Dateifenster 49 3.1.6 Verschiedene Dokumentansichten 50 3.1.7 Die Entwurfsansicht 51 3.1.8 Die Codeansicht 54 3.1.9 Live-Ansicht 55 5
3.1.10 Ansicht im Testserverbetrieb: Live-Ansicht 56 3.1.11 Live-Code 56 3.1.12 Code einfrieren 57 3.1.13 Code-Navigator 58 3.1.14 Abhängige Dateien 58 3.1.15 Mit mehren Dokumenten arbeiten 59 3.1.16 Codeteilung 60 3.2 Wichtige Voreinstellungen 60 3.2.1 Allgemeine Voreinstellungen 60 3.2.2 AP-Elemente (bis Version 8.0: Layer) 61 3.2.3 Codeformat einstellen 62 3.2.4 Codehinweise 63 3.2.5 Codeumschreibung 64 3.2.6 CSS-Stile 65 3.2.7 Dateien vergleichen 66 3.2.8 Dateitypen/Editoren 67 3.2.9 Eingabehilfen 68 3.2.10 Farbe für Code 69 3.2.11 Kopieren und Einfügen (Office) 69 3.2.12 Markierung 69 3.2.13 Neues Dokument 70 3.2.14 Site 73 3.2.15 Statusleiste 73 3.2.16 Unsichtbare Elemente 73 3.2.17 Validator 74 3.2.18 Vorschau im Browser 75 3.2.19 Prüfung auf externen Rechnern 77 3.3 Layouthilfen in Dreamweaver 78 3.3.1 Raster einstellen und anzeigen 78 3.3.2 Hilfslinien 78 3.3.3 Die Statusleiste 80 3.3.4 Tracing-Bilder 82 4 Dreamweaver erweitern 83 4.1 Befehle speichern 83 4.2 Extensions einsetzen 84 4.2.1 Bezugsquellen 84 4.2.2 Extension Manager 85 6
TEIL II Statische Websites 5 Eine Site erstellen 91 5.1 Die Struktur 91 5.1.1 Pfadangaben 91 5.1.2 Ordnerstruktur 93 5.2 Die Site-Verwaltung 95 5.2.1 Regeln beim Arbeiten mit einer Site 95 5.2.2 Site-Definition 96 5.2.3 FTP-Zugang einrichten 99 5.2.4 Eine Alternative zu FTP 101 5.2.5 Testserver 102 5.2.6 Versionskontrolle 102 5.2.7 Cloaking 102 5.2.8 Design Notes 103 5.2.9 Dateiansichtsspalten 104 5.2.10 Weitere Einstellungen 104 5.2.11 Import und Export von Sites 104 5.2.12 Fehlerquellen in der Site-Verwaltung 105 5.2.13 Die Site-Ansicht 105 5.2.14 Synchronisieren und Vergleichen von Dateien 106 5.2.15 Mit der Dateiverwaltung arbeiten 108 5.3 Gruppenarbeit 109 5.3.1 Remote-Zugriff einstellen 110 5.3.2 Mit der Gruppenfunktion arbeiten 112 5.4 Die Buchwebsite anlegen 114 6 Grundlegende Dokumenteinstellungen 117 6.1 Seiteneigenschaften festlegen 117 6.2 Seiteneigenschaften festlegen ohne CSS 118 6.3 Seiteneigenschaften festlegen mit CSS 120 6.3.1 Verknüpfungen & Überschriften 121 6.3.2 Titel/Codierung 122 6.3.3 Tracing-Bild - warum und wann? 123 6.3.4 Metaangaben 124 6.3.5 Layouttricks mit Hintergrundbildern 125 6.4 Dokumenteinstellungen für die Buchwebsite 126 7
7 Tabellen in Dreamweaver 127 7.1 Einfügen von Tabellen 128 7.1.1 Hilfsmittel für Tabellen 129 7.1.2 Arbeiten im erweiterten Tabellenmodus 129 7.2 Tabelleneigenschaften einstellen 130 7.2.1 Zelleneigenschaften einstellen 132 7.2.2 Fehler vermeiden 132 7.3 Verschachtelte Tabellen 133 7.3.1 Was ist 100% 135 7.3.2 DerTrick mit den transparenten GIFs 135 7.3.3 Tabellenumrandungen erstellen 136 7.4 Zentrieren mit Tabellen 137 7.5 Aufbau der Tabellen für die Buchwebsite 138 8 Bilder im Web 145 8.1 Bildformate bestimmen 145 8.1.1 JPEG 145 8.1.2 GIF 146 8.1.3 PNG 146 8.1.4 Flash 147 8.2 Bilder einfügen und bearbeiten 148 8.2.1 Das Bedienfeld Elemente 148 8.2.2 Bilder in Dreamweaver bearbeiten 152 8.2.3 Bild von Text umfließen lassen 154 8.2.4 Image Maps und Hotspots 154 8.2.5 Platzhalterbilder 156 8.3 Interaktion mit Photoshop 157 9 Framesets 163 9.1 Funktionsweise von Frames 163 9.1.1 Gestalten mit Framesets 164 9.1.2 Suchmaschinen und Framesets 165 9.2 Ein Frameset anlegen 166 9.3 Mit Framesets arbeiten 169 9.3.1 Framesets nachbearbeiten 170 9.3.2 Verlinkungen in Framesets 170 9.3.3 Mehrere Frames gleichzeitig neu laden 170 9.3.4 Eingebettete Frames (<iframe>) 172 9.4 Anlegen des Framesets für die Buchwebsite 174 8
10 Verhalten 177 10.1 JavaScript in Dreamweaver 177 10.2 Verhalten 178 10.2.1 Rollover erstellen 180 10.2.2 Plug-ins überprüfen 183 10.2.3 Mehrere Frames gleichzeitig austauschen 184 10.2.4 JavaScript-Effekte 185 10.3 Erstellen der Rollover-Effekte auf der Buchwebsite 186 11 CSS in Dreamweaver 187 11.1 Ein wenig Theorie zum Einstieg 187 11.2 CSS-Voreinstellungen 188 11.3 CSS-Werkzeuge auf einen Blick 188 11.3.1 Medientypen 188 11.3.2 Layout-Hilfsmittel 189 11.4 Vorgehensweise und Regeln 191 11.5 Arten von CSS-Stilen 192 11.5.1 Interne CSS-Stile 192 11.5.2 Externe CSS-Stile 194 11.5.3 CSS-Syntax 194 11.6 Selektor-Typen 195 11.6.1 Klassen-Selektoren 195 11.6.2 Tag-Selektoren 196 11.6.3 Kontext-Selektoren 196 11.6.4 ID-Selektoren 197 11.7 Erstellen und Bearbeiten von CSS-Stilen 197 11.7.1 Das CSS-Bedienfeld 198 11.7.2 Neue CSS-Regeln erstellen 199 11.7.3 CSS-Regeln bearbeiten 200 11.7.4 CSS-Bearbeitung voreinstellen 201 11.7.5 CSS-Regeln für Texte 202 11.7.6 Zuweisen von CSS in der Eigenschaftenpalette 203 11.7.7 Verknüpfen externer CSS-Dateien 204 11.7.8 CSS-Regeln für unterschiedliche Ausgabemedien 205 11.8 Besondere CSS-Anwendungen 206 11.9 CSS-Layout ohne Tabellen 207 11.9.1 CSS für barrierefreies Webdesign 208 11.9.2 Das CSS-Boxmodell 208 11.9.3 DOC-Type immer angeben 209 11.9.4 CSS-Stile und DIV-Tags 210 9
11.10 AP-Elemente 216 11.10.1 AP-Elemente erstellen und einstellen 216 11.10.2 Erweiterte Einstellungen für AP-Elemente 223 11.10.3 AP-Elemente in Tabellen umwandeln 227 11.10.4 AP-Elemente und JavaScript 229 11.11 CSS-Regeln für die Buchwebsite erstellen 230 11.12 Aufbau der Buchwebsite mit CSS-und AP-Elementen 238 12 Spry - Framework für Ajax 251 12.1 Was ist Spry? 251 12.1.1 Vorteile 252 12.1.2 Einschränkungen 253 12.2 Spry in diesem Buch 253 13 Spry-Widgets 255 13.1 Spry-Menüleiste 257 13.1.1 Spry-Menüleiste anlegen 257 13.1.2 Spry-Menüleiste anpassen 258 13.2 Spry-Palette mit Registerkarten 259 13.2.1 Spry-Registerkarten einstellen 260 13.2.2 Spry-Registerkarten füllen 260 13.3 Spry-Akkordeon 261 13.4 Spry Reduzierbare Palette 263 13.5 Spry-Widgets mit CSS gestalten 264 14 Hyperlinks 267 14.1 Verknüpfungen einbauen 267 14.2 Ziel angeben 268 14.3 Hyperlinks prüfen 269 14.4 Anker hinzufügen 269 14.5 Hyperlink-Methoden 270 14.6 Hyperlinks auf E-Mail-Adressen 271 14.7 Platzhalter für Hyperlinks 272 15 Vorlagen und Bibliotheken 275 15.1 Mit Vorlagen arbeiten 275 15.1.1 Vorlagenerstellen 276 15.1.2 Bearbeitbare Bereiche festlegen 278 15.1.3 Dokument aus Vorlage erstellen 278 15.1.4 Vorlagen entfernen 279 10
15.1.5 Vorlagen aktualisieren 281 15.2 Tricks mit Vorlagen 281 15.2.1 Verschachtelte Vorlagen 281 15.2.2 Wiederholte Bereiche 281 15.2.3 Wiederholte Tabelle 282 15.3 Mit Bibliotheken arbeiten 282 15.4 Anlegen der Sitestruktur und der Navigation für die Buchwebsite 285 16 Formulare 293 16.1 Übertragungsmethoden für Formulardaten 293 16.1.1 GET 293 16.1.2 POST 294 16.1.3 Formulare per E-Mail 294 16.2 Ein Formular erstellen 294 16.3 Formularelemente 296 16.3.1 Variablenvergabe 296 16.3.2 Textfelder 297 16.3.3 Versteckte Textfelder 297 16.3.4 Textbereiche 299 16.3.5 Kontrollkästchen 299 16.3.6 Optionsschalter 301 16.3.7 Auswahllisten und Sprungmenüs 301 16.3.8 Dateifelder 302 16.3.9 Schaltflächen 303 16.4 Formulare überprüfen 304 16.5 Spry für Formulare 304 16.5.1 Spry-Überprüfung Textfeld 305 16.5.2 Spry-Überprüfung Textbereich 311 16.5.3 Spry-Überprüfung Auswahl 312 16.5.4 Spry-Überprüfung Kennwort 313 16.5.5 Spry-Überprüfung Bestätigung 314 16.6 Formulare gestalten 315 16.6.1 Formulare mit Tabellen gestalten 315 16.6.2 Formularelemente mit CSS gestalten 315 16.7 Ein Kontaktformular für die Buchwebsite 317 17 Quelltext de luxe 321 17.1 Arbeiten im Quelltext 321 17.1.1 Quellcode formatieren 321 17.1.2 Codeansichtsoptionen 322 11
17.1.3 Code übersichtlich halten 324 17.1.4 Code halbautomatisch erstellen 325 17.1.5 Kommentare 326 17.2 Codefragmente (Snippets) einsetzen 326 17.2.1 Codefragmente mit Kollegen teilen 328 17.2.2 Tag-Inspektor 329 17.2.3 Eigene Tag-Vorgaben oder-bibliotheken 329 17.3 Quelltext in der Entwurfsansicht bearbeiten 332 17.4 Quelltext automatisch optimieren 332 17.5 Suchen und ersetzen 333 18 Dreamweaver und Flash 337 18.1 Flash einsetzen oder nicht? 337 18.2 Flash einfügen 338 18.2.1 Filme einbinden 338 18.2.2 Eigenschaften einstellen 340 18.3 Möglichkeiten im Zusammenspiel mit Flash 341 18.3.1 Sound mit Flash 341 18.3.2 Flash mit Aktionen steuern 342 18.3.3 Flash in Dreamweaver öffnen 342 19 Office-Dateien einfügen 345 19.1 Word-Texte einfügen 345 19.2 Excel-Tabellen einfügen 346 19.3 CSV-Daten importieren 346 19.4 Weitere Einfügemöglichkeiten 347 TEIL IM Dynamische Websites 20 Dynamische Websites - Einführung 351 20.1 Vorteile dynamischer Sites 351 20.1.1 Statische versus dynamische Sites 352 20.1.2 Dynamische Sites und Suchmaschinen 352 20.1.3 Dynamische Sites und Sessions 352 20.2 Typen dynamischer Websites 353 20.2.1 Web-Content-Management-ISysteme (WCMS) 353 20.2.2 Content-Management-Systeme (CMS) 354 20.2.3 Redaktionssysteme 354 20.2.4 Shopsysteme 354 12
20.2.5 Foren 354 20.2.6 Portale 355 20.2.7 Personalisierte Websites 355 20.2.8 Weblogs 356 20.3 Client- und serverseitiges Skripting 357 20.4 Konzeption dynamischer Sites 359 20.4.1 Besonderheiten für das Layout 360 20.4.2 Trennung von Layout und Inhalt 361 20.4.3 Konzeption der Administrationsebene 361 20.4.4 Planung, Planung, Planung 362 21 Einführung in PHP 363 21.1 Was ist PHP? 363 21.1.1»Hallo Welt«in PHP 364 21.1.2 Vorteile von PHP 366 21.2 PHP und HTML 366 21.2.1 PHP in HTML einbinden 366 21.2.2 Schreibweise von Zahlen und Zeichen 367 21.2.3 HTML in PHP einbinden 368 21.3 Variablen in PHP 369 21.4 Vergleichsoperatoren 371 21.5 Boolesche Operatoren 372 21.6 Schleifen programmieren 372 21.6.1 for-schleifen 373 21.6.2 while-schleifen 374 21.6.3 do-while-schleifen 374 21.6.4 foreach-schleifen 375 21.7 Bedingungen mit PHP 375 21.7.1 if-anweisung 376 21.7.2 if-else-anweisung 376 21.7.3 switch-anweisung 377 21.8 Dateien einbinden 377 21.8.1 Mit MySQL verbinden 379 21.8.2 MySQL-Datenbanken abfragen 379 21.9 Mit Sessions arbeiten 380 21.10 Fazit 381 22 Lokalen Webserver installieren 383 22.1 Webserver-Grundlagen 383 22.2 Vorbereitung: Firewall einstellen oder ausschalten 385 13
22.3 WAMP installieren 386 22.3.1 ХАЛЛРР testen und konfigurieren 389 22.3.2 Eigene Serverroot angeben 391 22.3.3 phpmyadmin in die Serverroot legen 392 22.3.4 MySQL 394 22.4 Internet Information Server als Alternative installieren 395 22.4.1 IIS verwalten 398 22.4.2 PHP auf IIS installieren 398 22.4.3 MySQL unter IIS installieren 403 22.4.4 phpmyadmin unter IIS installieren 403 22.4.5 Installation des IIS 7 und PHP unter Windows Vista Business 404 23 Dynamische Sites in Dreamweaver einrichten 413 23.1 Testserver-Einstellungen 413 23.2 Site-Einstellungen testen 415 23.3 Buchwebsite für dynamische Inhalte einrichten 418 24 MySQL-Grundlagen 421 24.1 Einführung in Datenbanken 421 24.1.1 Relationale Datenbanken 422 24.1.2 Relationstypen 424 24.1.3 Primärschlüssel 424 24.1.4 Redundanzfreiheit 424 24.1.5 Prozessdatenfreiheit 425 24.1.6 Fremdschlüssel 425 24.1.7 Referenzielle Integrität 425 24.1.8 Endlosschleifen 426 24.1.9 MySQL-Datentypen 426 24.2 Erstellen einer MySQL-Datenbank 428 24.2.1 MySQL-Datenbank mit phpmyadmin anlegen 428 24.2.2 Einfügen von Datensätzen 432 24.2.3 Import von Daten 432 24.2.4 Export von Daten zum Provider 433 24.3 MySQL und Microsoft Access 434 24.4 Benutzerverwaltung mit MySQL 438 24.5 Einführung in SQL 441 24.5.1 Daten abfragen mit SELECT 442 24.5.2 Datensatz abfragen mit WHERE 442 24.5.3 Daten sortieren mit ORDER BY 443 24.5.4 Datensatz aktualisieren mit UPDATE 443 14
24.5.5 Datensatz löschen mit DELETE 443 24.5.6 Datensatz einfügen mit INSERT 443 24.6 Datenstruktur der Buchwebsite 444 24.6.1 Datenstruktur der Website 444 24.6.2 Primärschlüssel festlegen 445 25 Datenbanken mit Dreamweaver anbinden 449 25.1 Datenbanken konnektieren 449 25.2 Konnektierung von MySQL mit PHP 450 25.2.1 Bedienfeldgruppe Anwendung 450 25.2.2 Das Bedienfeld Datenbanken 453 26 PHP und Dreamweaver 457 26.1 Variablen in Dreamweaver 458 26.1.1 Variablen senden 458 26.1.2 Mit Variablen arbeiten 459 26.2 PHP einfügen in Dreamweaver 461 26.2.1 PHP-Befehle einsetzen 461 26.2.2 PHP-Referenz 462 26.2.3 PHP von Hand coden 462 26.3 Fehlersuche mit PHP 463 26.3.1 Fehlermeldungen anzeigen 463 26.3.2 Externe Variablen anzeigen 464 26.3.3 Häufige PHP-Fehlerquellen 465 27 Datenbanken abfragen 467 27.1 Das Bedienfeld Bindungen 467 27.2 Datensätze in Dreamweaver abfragen 469 27.2.1 Einfache Abfragen erstellen 469 27.2.2 Anzeigen von Datensätzen 474 27.2.3 Formatieren in der Live-Ansicht 475 27.2.4 Erweiterte Abfragen erstellen 476 27.2.5 Mehrere Datensätze abfragen 479 27.2.6 Bestimmte Datensätze abfragen 481 27.2.7 Datensatz-ID mit URL übergeben 483 27.2.8 Einstellbare Variablentypen 487 27.2.9 Testen der Abfragen 488 27.3 Dynamische Tabellen 489 27.3.1 Erstellen einer dynamischen Tabelle 489 15
27.3.2 Dynamische Tabelle mit Serververhalten 490 27.4 Wiederholte Bereiche mit AP-Elementen 492 27.5 Bilder dynamisch einfügen 496 27.5.1 Bilder aus Datenbanken verlinken 496 27.5.2 Vorbereitungen für dynamisch eingefügte Bilder 500 27.6 In Datensätzen navigieren 501 27.6.1 Datensatznavigation erstellen 501 27.6.2 Bereiche in Abhängigkeit von Daten anzeigen 503 27.6.3 Datensatzanzahl anzeigen 506 27.6.4 Individuelle Datensatznavigationen erstellen 507 27.7 HTML-Attribute dynamisch generieren 507 27.7.1 Eigenschaften aus Datenquellen einfügen 507 27.7.2 Daten in der URL mit Hyperlinks übergeben 513 27.8 Automatische Master-und Detailseiten 515 27.9 Ausgabe formatieren 517 27.10 Aufbau der dynamischen Inhalte der Buchwebsite 519 27.10.1 Das Funktionsschema 519 27.10.2 Die Masterseite 520 27.10.3 Die Detailseiten 522 27.10.4 Anlegen der Abfragen 523 27.10.5 URL-Parameter übergeben 525 27.10.6 Datensatznavigation erstellen 526 27.10.7 Aufbau des CSS-Layouts 537 28 Daten einfügen und dynamische Formulare 543 28.1 Neue Datensätze einfügen 544 28.1.1 Der Assistent für Einfügeformulare 544 28.1.2 Eigene Einfügeformulare verwenden 547 28.2 Bestehende Datensätze manipulieren 547 28.2.1 Ein Änderungsformular erstellen 547 28.2.2 Andere Möglichkeiten 548 28.2.3 Dynamische Auswahlliste erstellen 549 28.2.4 Dynamische Kontrollkästchen (Checkboxen) 550 29 Datensätze bearbeiten 553 29.1 Datensätze verändern 553 29.1.1 Ein Änderungsformular erstellen 553 29.1.2 Datensatznavigation für Datensatzänderungen 555 29.1.3 Datensatznavigation mit zwei Dokumenten und Auswahlseiten 556 16
29.2 Datensätze löschen 559 29.3 Daten aus mehreren Tabellen verbinden 560 29.4 Administrationsebene für die Buchwebsite anlegen 565 29.4.1 Frameset anlegen 565 29.4.2 Auswahlseiten 565 29.4.3 CSS für Administrationsebene anlegen 567 30 Benutzer authentifizieren und Zugriffsrechte festlegen 575 30.1 Benutzer verwalten 575 30.1.1 Schema einer Benutzerauthentifizierung 575 30.1.2 Tabelle für die Benutzerverwaltung 575 30.1.3 Benutzer anmelden 577 30.2 Zugriffsrechte beschränken 579 30.3 Neue Benutzer anlegen 580 30.4 Zugriffsrechte für die Website zum Buch 586 31 Fortgeschrittene Techniken 589 31.1 SQL-Abfragen 589 31.1.1 Eigene SQL-Abfragen einbinden 589 31.1.2 Abfragen verschachteln 595 31.1.3 Eine Volltextsuche 602 31.2 Arbeiten mit Sessions 604 31.3 Serververhalten 607 31.3.1 Eigene Serververhalten schreiben 607 31.3.2 Positionierung im Code 613 31.3.3 Bedingungen als Serververhalten anlegen 614 31.3.4 Serververhalten anderen zur Verfügung stellen 618 32 Menüs für dynamische Verhalten 621 32.1 Dynamische Verhalten zuweisen 621 32.1.1 Tabellendaten importieren 621 32.1.2 Spry-XML-Datensatz 621 32.1.3 Spry-Bereich 621 32.1.4 Spry-Wiederholung 622 32.1.5 Spry-Wiederholungsliste 622 32.1.6 Datensatzgruppen 622 32.1.7 Dynamische Daten 622 32.1.8 Bereich wiederholen 623 V
32.1.9 Bereich anzeigen 623 32.1.10 Seitenerstellung für Datensatzgruppe 624 32.1.11 Datensatzgruppen-Navigationsstatus 625 32.1.12 Master-Detaildatensatz 625 32.1.13 Datensatz einfügen 626 32.1.14 Datensatz aktualisieren 626 32.1.15 Datensatz löschen 627 32.1.16 Benutzerauthentifizierung 627 32.1.17 XSL-Transformation 628 33 Dreamweaver und XML 629 33.1 Einführung in XML 629 33.2 XML und CSS 632 33.3 XML-Attribute 634 33.4 DTDs 637 33.4.1 DTDs mit Dreamweaver entwickeln 639 33.4.2 Externe DTDs 640 33.4.3 Einbinden von DTDs in Dreamweaver 641 33.5 XML, XSLT und CSS 644 33.5.1 XSLT-Einführung 644 33.5.2 RSS-Feed einbinden 645 33.5.3 XSLT-Fragmente und ganze XSLT-Seiten 646 33.5.4 Clientseitige XSLT-Transformation 646 33.5.5 Serverseitige XSLT-Transformation mit PHP 653 34 Spry und XML 657 34.1 Was ist Ajax? 657 34.2 XML-Daten anbinden 657 34.3 Spry-Bereiche 662 34.3.1 Spry-Wiederholungen 665 34.3.2 Spry-Wiederholungsliste 666 34.3.3 Spry-Tabelle 667 34.4 Kritiken an Spry 670 Die DVD zum Buch 671 Index 675 18