166.txt ************************************************************************ * Edit v1.000 from 2023-04-06 to 2023-04-06 by HSc * ************************************************************************ PHP und mySQL fuer Kids Hanke, Johann-Christian mitp 2019, 8. Auflage ISBN 978-3-95845-567-2 Seite Auszug ======================================================================== 013 Einleitung ------------------------------------------------------------------------ 013 Personal HomePage Tools von (1994) Rasmus 014 Was bedeutet eigentlich Programmieren? ------------------------------------------------------------------------ 014 Wozu sind Datenbanken da? ------------------------------------------------------------------------ 015 Finnland/Michael genannt "Monty", Tochter My (mySQL -> Oracle) und Maria (MariaDB) HSc: 1:n Beziehungen in MySQL ueber mehrere Tabellen n Indirekte Joins 016 Was kannst du mit PHF' und MySQL alles machen? ------------------------------------------------------------------------ 017 Was ist ein Webserver und wozu brauchst du den? ------------------------------------------------------------------------ 017 Wie arbeitest du mit diesem Buch? ------------------------------------------------------------------------ 018 Was brauchst du fuer dieses Buch? ------------------------------------------------------------------------ 019 PHP, HTML und mySQL sind plattformunabhaengig 020 Wie gut kommst du mit dem Computer klar? ------------------------------------------------------------------------ 021 Danksagung ------------------------------------------------------------------------ 022 Wo gibt's Hilfe, wenn es mal klemmt? ------------------------------------------------------------------------ 023 DEINE COOLE HOMPAGE MIT HTML ------------------------------------------------------------------------ 024 Richte dir einen Projektordner ein! ------------------------------------------------------------------------ 026 Bitte blende die Dateiendungen ein! ------------------------------------------------------------------------ 028 HTML auf Knopfdruck - mit PSPad ------------------------------------------------------------------------ 033 Unicode UTF-8 mo BOM (65001) 037 So wird's perfekt: UEberschriften, Absaetze und mehr ------------------------------------------------------------------------ 042 laut XHTML! 043 Hier bin ich: Ein Bild einfuegen ------------------------------------------------------------------------ 047 100% besser als 600px 048 Meine Hobbys kurz aufgelistet ------------------------------------------------------------------------ 050 Coole Links zu coolen Plaetzen ------------------------------------------------------------------------ 051 >Apachen<< ------------------------------------------------------------------------ 089 MAMP: lokaler Webserver unter Windows und Mac ------------------------------------------------------------------------ 098 XAMPP: lokaler Webserver unter Windows ------------------------------------------------------------------------ 104 Problemloesung und Sicherheit ------------------------------------------------------------------------ 105 Die Magie des Ordners >>htdocs<< ------------------------------------------------------------------------ 105 Testen: phpinfo() auf localhost ------------------------------------------------------------------------ 109 Schlussbemerkung ------------------------------------------------------------------------ 109 Zusammenfassung ------------------------------------------------------------------------ 110 Ein paar Fragen ------------------------------------------------------------------------ 110 ... und eine Aufgabe ------------------------------------------------------------------------ 111 3 HALLO ECHO - >>HALLOO WELT<< ------------------------------------------------------------------------ 112 Daten ausgeben mit echo ------------------------------------------------------------------------ 116 Variablen: Mein rechter, rechter Platz ist leer ------------------------------------------------------------------------ 118 Ausgabe verschoenern mit HTML-Tags ------------------------------------------------------------------------ 119 Geht auch: Strings verketten ------------------------------------------------------------------------ 123 Kleine Zeilenumbruchkunde ------------------------------------------------------------------------ 125 Maskenball: Das Escape-Zeichen >>\<< ------------------------------------------------------------------------ 126 KeinenDurchblick? Kommentare setzen! ------------------------------------------------------------------------ 127 Fehlermeldung? Cool bleiben! Schlussbemerkung ------------------------------------------------------------------------ 129 Zusammenfassung ------------------------------------------------------------------------ 130 Ein paar Fragen ------------------------------------------------------------------------ 130 ... und ein paar Aufgaben ------------------------------------------------------------------------ 131 4 SPASS MIT DATUM UND UHRZEIT ------------------------------------------------------------------------ 132 Immerup to date ------------------------------------------------------------------------ 135 Wer hat an der Uhr gedreht? ------------------------------------------------------------------------ 137 Pause muss sein: Die if-else-Entscheidungsstruktur ------------------------------------------------------------------------ 144 Der Tag vergeht: Zwischentoene mit elseif ------------------------------------------------------------------------ 146 Feldvariablen: Wochentage aufschreiben ------------------------------------------------------------------------ 149 Arrays, die Zweite: Es geht auch kuerzer! ------------------------------------------------------------------------ 151 Assoziativ: Hauptstaedte als Array ------------------------------------------------------------------------ 153 ... und wieder die Kurzform ------------------------------------------------------------------------ 153 Den Monat ausgeben ------------------------------------------------------------------------ 154 Schlussbemerkung ------------------------------------------------------------------------ 155 Zusammenfassung ------------------------------------------------------------------------ 156 Ein paar Fragen ------------------------------------------------------------------------ 156 ... und ein paar Aufgaben ------------------------------------------------------------------------ 157 5 SEITEN MIT PASSWORT SCHUETZEN ------------------------------------------------------------------------ 158 Formular fuer das Passwort ------------------------------------------------------------------------ 159 Senden mit Methode: post oder get? ------------------------------------------------------------------------ 161 Ganz simpel: Ausgabe des Passworts ------------------------------------------------------------------------ 163 Ein paar Tricks fuer zwischendurch ------------------------------------------------------------------------ 164 Das Skript sicherer machen ------------------------------------------------------------------------ 167 Wir gehen unter die Hacker! ------------------------------------------------------------------------ 169 Daten desinfizieren mit den Filterfunktionen ------------------------------------------------------------------------ 173 Testen mit >>if-else<< ------------------------------------------------------------------------ 174 Schoenheitsfehler? Variablentest! ------------------------------------------------------------------------ 176 Mehr Moeglichkeiten mit switch ------------------------------------------------------------------------ 179 Inhalt mit >>include<< einbinden ------------------------------------------------------------------------ 181 Mehr Sicherheit: Endungs- und Ordnertricks ------------------------------------------------------------------------ 182 Schlussbemerkung ------------------------------------------------------------------------ 183 Zusammenfassung ------------------------------------------------------------------------ .htaccesss oder cgi-bin 184 Ein paar Fragen ------------------------------------------------------------------------ 184 ... und ein paar Aufgaben ------------------------------------------------------------------------ 185 6 ETWAS MATHE - TAsCHEN(GELD)RECHNER ------------------------------------------------------------------------ 186 Nicht ohne Grund: Grundrechenarten ------------------------------------------------------------------------ 187 Rechenpraxis: Zwei mal drei macht vier ------------------------------------------------------------------------ 188 Einnahmen minus Ausgaben: Taschengeldrechner ------------------------------------------------------------------------ 191 $_SERVER['PHP_SELF]: Daten an sich selbstsenden ------------------------------------------------------------------------ 192 Wie viel bleibt uebrig? Prozentrechnung ------------------------------------------------------------------------ 196 Traurige Saeulen: Ergebnis als Diagramm ------------------------------------------------------------------------ 197 Plus, Minus, Mal, Geteilt? Select! ------------------------------------------------------------------------ 199 So liest du ein SELECT-Feld aus ------------------------------------------------------------------------ 201 Rechner de luxe: Wir schreiben eine Funktion ------------------------------------------------------------------------ 204 Der Rechner im Einsatz ------------------------------------------------------------------------ 207 Schlussbemerkung ------------------------------------------------------------------------ 207 Zusammenfassung ------------------------------------------------------------------------ 208 Ein paar Fragen ------------------------------------------------------------------------ 208 ... und ein paar Aufgaben ------------------------------------------------------------------------ 209 7 SCHLEIFEN DIE >>GRATULATIONSMASCHINE<< ------------------------------------------------------------------------ 210 Die while-Schleife ------------------------------------------------------------------------ 214 Pruefung zu Fusz: >>while-Schleife<< ------------------------------------------------------------------------ 216 Der Bestseller: >>for<< ------------------------------------------------------------------------ 218 Und die Geburtstagskerzen? ------------------------------------------------------------------------ 220 Have a break: Abbruchbedingung einfuegen ------------------------------------------------------------------------ 220 Angirffe der Skript Kids 221 Noch noch eine Schleife: >>foreach<< ------------------------------------------------------------------------ 224 Schlussbemerkung ------------------------------------------------------------------------ 224 Zusammenfassung ------------------------------------------------------------------------ 225 Er paar Fragen ------------------------------------------------------------------------ 225 ... und ein paar Aufgaben ------------------------------------------------------------------------ 227 8 FUERS FEEDBAK: FORMMAILER SELBST GESTRICKT ------------------------------------------------------------------------ 228 Die Funktion >>mail()<< ------------------------------------------------------------------------ 230 E-Mail mit Datums- und Zeitstempel ------------------------------------------------------------------------ 231 Das Feedback-Formular ------------------------------------------------------------------------ 234 Professionell mailen: Fehler unterdruecken ------------------------------------------------------------------------ 236 Formular um ein Name-Feld erweitern ------------------------------------------------------------------------ 238 Pruefen! Sind alle Felder ausgefuellt? ------------------------------------------------------------------------ 242 Inhalt in die Formularfelder schreiben ------------------------------------------------------------------------ 242 Das prickelt, erneutes eingeben. 245 E-Mail ohne kryptische Zeichen ------------------------------------------------------------------------ 248 Erweiterter Fehlertest: Mindestlaenge und E-Mail-Check ------------------------------------------------------------------------ 251 Schutz gegen Flooding? ------------------------------------------------------------------------ 253 Zum Abschluss:Universal-Formmailer ------------------------------------------------------------------------ 256 Konstanten statt Variablen ------------------------------------------------------------------------ 259 Schlussbemerkung ------------------------------------------------------------------------ 259 Zusammenfassung ------------------------------------------------------------------------ 260 Ein paar Fragen ------------------------------------------------------------------------ 260 ... und ein paar Aufgaben ------------------------------------------------------------------------ 261 9 SUPER WIEDERERKENNEN MIT COOKIES ------------------------------------------------------------------------ 262 Was sind Cookies? ------------------------------------------------------------------------ 266 Geheimtipp: Der alte Internet Expiorer ------------------------------------------------------------------------ 267 Kruemelmonsters Keksfabrik: Cookies >>backen<< ------------------------------------------------------------------------ 269 Der Keks bekommt ein MHD ------------------------------------------------------------------------ 270 Herumkruemeln: Cookies >>verspeisen<< ------------------------------------------------------------------------ 271 Aufgegessen: Cookies loeschen ------------------------------------------------------------------------ 272 Schlussbemerkung ------------------------------------------------------------------------ 272 Zusammenfassung ------------------------------------------------------------------------ 272 Ein paar Fragen ------------------------------------------------------------------------ 272 ... und ein paar Aufgaben ------------------------------------------------------------------------ 273 10 BESUCHERZAEHLER SELBST GEBAUT ------------------------------------------------------------------------ 274 Zwei Dateien: So funktioniert Beispiel ------------------------------------------------------------------------ 274 Hitmaschine: unter ein Textco ------------------------------------------------------------------------ 275 Datei zum Lesen oeffnen ------------------------------------------------------------------------ 277 Der geheimnisvolle Dateizeiger ------------------------------------------------------------------------ 278 Daten in eine Textdatei schreiben ------------------------------------------------------------------------ 279 Rechtevergabe mit >>chmod<< ------------------------------------------------------------------------ 282 Counter de luxe mit Cookies ------------------------------------------------------------------------ 282 So funktioniert das Skript ------------------------------------------------------------------------ 283 Schlussbemerkung ------------------------------------------------------------------------ 283 Zusammenfassung ------------------------------------------------------------------------ 284 Ein paar Fragen ------------------------------------------------------------------------ 284 ... und ein paar Aufgaben ' ------------------------------------------------------------------------ 285 11 EINE UMFRAGE MIT GRAFISCHER AUSWERTUNG ------------------------------------------------------------------------ 286 sieht das Beispiel aus ------------------------------------------------------------------------ 286 Komma separierte Textdatei ------------------------------------------------------------------------ 289 Text am Trennzeichen zerlegen ------------------------------------------------------------------------ 290 Die unsichtbare Tabelle fuer das Diagramm ------------------------------------------------------------------------ 291 ... wieder etwas Mathe: Dreisatz ------------------------------------------------------------------------ 293 Die Umfrageseite: So funktioniert das Skript ------------------------------------------------------------------------ 295 Schummeln verboten: Mehrfachvotes unterdruecken ------------------------------------------------------------------------ 297 ... und wieder entsteht ein Array ------------------------------------------------------------------------ 298 Test mit Ausdruck ------------------------------------------------------------------------ 298 die "Entspricht" Abbruch 300 Schlussbemerkung ------------------------------------------------------------------------ 300 Zusammenfassung ------------------------------------------------------------------------ 301 Ein paar Fragen ------------------------------------------------------------------------ 301 ... und ein paar Aufgaben ------------------------------------------------------------------------ 303 12 DAS EIGENE GAESTEBUCH ------------------------------------------------------------------------ 304 Zu simpel gestrickt: Version 1 ------------------------------------------------------------------------ 306 Hacking-Versuche unterbinden ------------------------------------------------------------------------ 307 Die Funktionen >>nl2br()<< und >>readfile()<< ------------------------------------------------------------------------ 308 Scon besser: Gaestebuch Version 2 ------------------------------------------------------------------------ 310 So vermeidest du Doppeleintraege ------------------------------------------------------------------------ 314 Gaestebuch sicherer machen ------------------------------------------------------------------------ 315 Schlussbemerkung ------------------------------------------------------------------------ 315 Zusammenfassung ------------------------------------------------------------------------ 315 Ein paar Fragen ------------------------------------------------------------------------ 316 ... und ein paar Aufgaben ------------------------------------------------------------------------ 317 13 EIN ADRESSBUCH FUER DEIN TEAM ------------------------------------------------------------------------ 318 Panung ist die halbe Miete ------------------------------------------------------------------------ 320 Geniales Tool: phpMyAdmin ------------------------------------------------------------------------ 321 Etwas SQL zum Anlegen der Datenbanktabelle ------------------------------------------------------------------------ 326 Datentypen im UEberblick ------------------------------------------------------------------------ 328 Trage ein paar Adressen ein! ------------------------------------------------------------------------ 333 Teammitglieder da? Schaue nach! ------------------------------------------------------------------------ 338 Daten als HTML-Tabelle ausgeben ------------------------------------------------------------------------ 349 Mit PHP: Eingabeformular selbst gestrickt ------------------------------------------------------------------------ 353 Schlussbemerkung ------------------------------------------------------------------------ 354 Zusammenfassung ------------------------------------------------------------------------ 355 Ein paar Fragen ------------------------------------------------------------------------ 356 ... und ein paar Aufgaben ------------------------------------------------------------------------ 357 14 GAsTEBUCH DE LUX als DATENBANKTABELLE ------------------------------------------------------------------------ 375 errror_reporting(Q) oder (E_ALL) 358 Datenbanktabelle planen ------------------------------------------------------------------------ 359 Daten erst einmal ausgeben ------------------------------------------------------------------------ 365 Das Eingabeformular entsteht ------------------------------------------------------------------------ 371 Mit Sicherheit: Reloadsperre, SQL-Schutz und Fehler unterdruecken ------------------------------------------------------------------------ 376 Nicht alle Datensaetze auf einmal ------------------------------------------------------------------------ 379 Links fuer die seitenweise Ausgabe ------------------------------------------------------------------------ 382 Ist die Webadresse korrekt? ------------------------------------------------------------------------ 385 Schlussbemerkung ------------------------------------------------------------------------ 385 Zusammenfassung ------------------------------------------------------------------------ 385 Ein paar Fragen ------------------------------------------------------------------------ 386 ... und ein paar Aufgaben ------------------------------------------------------------------------ 387 15 BLOGGEN FUER KIDS: >>DAS MINI-CMS<< ------------------------------------------------------------------------ 388 Pflichtenheft: Zuerst planst du das Projekt ------------------------------------------------------------------------ 390 Schickes Design: Die Ausgabe aller Daten ------------------------------------------------------------------------ 394 Datenbankabfrage: Der MySQL-Teil im UEberblick ------------------------------------------------------------------------ 396 News von gestern? AEltere Eintraege anzeigen! ------------------------------------------------------------------------ 398 Passwortschutz mit Cookie ------------------------------------------------------------------------ 400 So bindest du die Beitraege ein ------------------------------------------------------------------------ 403 HTML in PHP mit >>heredoc<< ------------------------------------------------------------------------ 405 Mehr gefaellig? Hier klicken! ------------------------------------------------------------------------ 407 Die Funktionen >>stlen()<< und >>substring()<< ------------------------------------------------------------------------ 411 Schlussbemerkung ------------------------------------------------------------------------ 412 Zusammenfassung ------------------------------------------------------------------------ 412 Ein paar Fragen ------------------------------------------------------------------------ 412 ... und ein paar Aufgaben ------------------------------------------------------------------------ 413 16 AKTIVTAETEN VERWALTEN: WER KOMMT MIT INS KINO? ------------------------------------------------------------------------ 413 HSc: Adressen, Artikel, Bestellen. 414 Das Adressbuch bekommt Gesellschaft ------------------------------------------------------------------------ 417 Ist das noch normal? Daten aufteilen! ------------------------------------------------------------------------ 420 Nicht vergessen: Das Eingabeformular ------------------------------------------------------------------------ 424 Bitte bestaetige: Name und Nutzer-ID ------------------------------------------------------------------------ 427 Wer kommt mit? Aus zwei mach drei ------------------------------------------------------------------------ 431 SQL fuer Profis: Von Joins und Funktionen ------------------------------------------------------------------------ 437 Schlussbemerkung ------------------------------------------------------------------------ 437 Zusammenfassung ------------------------------------------------------------------------ 437 Ein paar Fragen ------------------------------------------------------------------------ 438 ... und ein paar Aufgaben ------------------------------------------------------------------------ 439 17 AUTOMATISCH GEBURTSTAGSGRUESSE VERSENDEN ------------------------------------------------------------------------ 440 MSQL und dein Dienstleister ------------------------------------------------------------------------ 440 ALTER TABLE: Neue Spalte mit ADD COLUMN ------------------------------------------------------------------------ 441 Vorueberlegung: Pseudo-Cronjob einrichten ------------------------------------------------------------------------ 442 So klappt's: Das Geburtstags-Skript ------------------------------------------------------------------------ 445 Schlusssbemerkung ------------------------------------------------------------------------ 445 Zusammenfassung ------------------------------------------------------------------------ 446 Ein paar Fragen ------------------------------------------------------------------------ 446 ... und ein paar Aufgaben ------------------------------------------------------------------------ 447 ANHANG A ------------------------------------------------------------------------ 447 Fuer Eltern und Lehrer ------------------------------------------------------------------------ 449 ANHANG B ------------------------------------------------------------------------ 449 Hochladen der Seiten mit FTP ------------------------------------------------------------------------ 455 Empfehlenswerte PHP-Editoren ------------------------------------------------------------------------ 457 PHP und MySQL lernen ------------------------------------------------------------------------ 458 STICHWORTVERZEICHNIS ------------------------------------------------------------------------ ******* EOF ************************************************************ ------------------------------------------------------------------------ ------------------------------------------------------------------------