448
Johann-Christian Hanke 6. Auflage Auf der CD: PHP 5, MySQL 5, Apache-Webserver, PSPad, Notepad++, Aptana Studio, XAMPP, Videos zur Installation und Einrichtung, Programmiercode aus dem Buch

[Johann-Christian Hanke] PHP Und MySQL Für Kids(BookFi.org)

Embed Size (px)

Citation preview

Johann-ChristianHankeHanke8674Johann-Christian Hanke6. Au ageAuf der CD: PHP 5, MySQL 5, Apache-Webserver, PSPad, Notepad++, Aptana Studio, XAMPP, Videos zur Installation und Einrichtung, Programmiercode aus dem BuchDer Bestseller aktualisiert in der 6. Auage!Alles redet von PHP und MySQL! Und unzhlige Webseiten-ProgrammierersetzendieProgram-miersprache PHP und die Webdatenbank MySQL mit viel Erfolg und Spa ein. Du mchtest auch in diese Liga aufsteigen und tolle Webseiten mit PHP und MySQL erstellen?Dann ist dieses Buch von Johann-Christian Hanke genau richtig fr dich! Du lernst zum Beispiel, wie du die Besucher auf deiner Webseite zhlst und ein Gstebuch einrichtest, in dem deine Freunde Nachrichten verffentlichen knnen. Selbst eigene Umfragen, Formulare fr Feedback und ein kleines Weblog kannst du bald selbst erstellen. Falls du einmal nicht weiterweit, springt dir Hund Bufzur Seite und gibt dir gerne hilfreiche Tipps. Und das ist lngst nicht alles, was das Buch zu bieten hat!DieCDistrandvollmitTools,diedufrdeine Webseiten-Programmierung brauchst. Die Videos zur Installation und Einrichtung helfen dir, damit du sofort mit dem Programmieren loslegen kannst.Auf der CD ndest du alles, was du zum Program-mieren brauchst:PHP 5, MySQL 5, den Apache-Webserver, die Edito-ren PSPad, Notepad++ und Aptana Studio, phpMy-Admin, XAMPP, SELFHTML, Videoworkshops, Lsun-gen zu den Aufgaben und den Programmiercode aus dem BuchISBN 978-3-8266-8649-8 Ebenfalls in dieser Reiheerschienen:ber den Autor:Johann-Christian Hanke ist ein erfolgreicher Fach-buchautor und gibt Kurse an einer Volkshochschule in Berlin.System-voraussetzungen: Alle Windows-Versionen sowie Mac OS X und LinuxAb 11 Jahre, aber auch fr Erwachsene, die eine wirklich einfache Einfh-rung suchen.23,3 mmProbekapitel und Infos erhltst du unter:[email protected](D) 19,95Regalsystematik:ProgrammierungISBN 978-3-8266-8674-08674.indd1 07.01.201010:48:51 PHP und MySQL fr Kids Johann-Christian HankePHP und MySQLfr Kids Bibliografische Information Der Deutschen BibliothekDie Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografischeDaten sind im Internet ber abrufbar. Bei der Herstellung des Werkes haben wir uns zukunftsbewusst fr umweltvertrgliche und wiederverwertbare Materialien entschieden. Der Inhalt ist auf elementar chlorfreiem Papier gedruckt. ISBN: 978-3-8266-8674-0 6., aktualisierte und erweiterte Auflage 2010 E-Mail: [email protected] Telefon: +49 89/2183-7928 Telefax: +49 89/2383-7620 2010 bhv, eine Marke der Verlagsgruppe Hthig Jehle Rehm GmbH Heidelberg, Mnchen, Landsberg, Frechen, Hamburg. Printed in Germany Lektorat: Katja Vlpel Korrektorat: Petra Heubach-Erdmann Satz und Layout: Johann-Christian Hanke, Berlin Dieses Werk, einschlielich aller seiner Teile, ist urheberrechtlich geschtzt.Jede Verwertung auerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulssig und strafbar. Dies gilt insbesondere fr Vervielfltigungen, bersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. fr Tabea, Florian und Linus 7

Inhaltsverzeichnis Vorwort15 Was bedeutet eigentlich Programmieren?15 Wozu sind Datenbanken da?16 Was kannst du mit PHP und MySQL alles machen?17Was ist ein Webserver und wozu brauchst du den?18 Wie arbeitest du mit diesem Buch?18 Was brauchst du fr dieses Buch?19 Wie gut kommst du mit dem Computer klar?20 Was ist neu in Auflage 6?22 Wo gibts Hilfe, wenn es mal klemmt?24 1Deine coole Homepage mit HTML25 Richte dir einen Projektordner ein!26 HTML auf Knopfdruck mit PSPad28 So wirds perfekt: berschriften, Abstze und mehr35 Hier bin ich: Ein Bild einfgen40 Meine Hobbys kurz aufgelistet43 Coole Links zu coolen Pltzen45 Meine drei Lieblingsfcher in einer Tabelle47 Schickes Layout mit Style Sheets49 Schn bunt hier: Farben zuweisen53 So legst du die exakte Breite fest57 Eine Umfrage! Wie findest du meine Page?59 Tipps und Tricks zu PSPad61 Schlussbemerkung64 Zusammenfassung64 Ein paar Fragen 65 und ein paar Aufgaben65 8 Inhaltsverzeichnis 2Installiere deinen eigenen Webserver!67 Warum eigentlich ein Webserver?68 Wie teuer ist die Homepage mit PHP/MySQL?71 How! Im Reich des Apachen75 Ganz einfach: Webserver selbst installiert!75 Nur noch etwas Handarbeit und fertig!81 Testen: phpinfo() auf localhost83 Schlussbemerkung86 Zusammenfassung87 Ein paar Fragen 87 und eine Aufgabe88 3Hallo echo Hallo Welt89 Daten ausgeben mit echo90 Variablen: Mein rechter, rechter Platz ist leer94 Ausgabe verschnern mit HTML-Tags96 Wie Pech und Schwefel: Strings verketten97 Kleine Zeilenumbruchkunde101 Maskenball: Das Escape-Zeichen \103 Keinen Durchblick? Kommentare setzen!105 Fehlermeldung? Cool bleiben!106 Schlussbemerkung108 Ein paar Fragen 109 und ein paar Aufgaben109 4Spa mit Datum und Uhrzeit111 Immer up to date112 Wer hat an der Uhr gedreht?115 Pause muss sein: Die if-else-Entscheidungsstruktur116 Der Tag vergeht: Zwischentne mit elseif123 Feldvariablen: Wochentage aufschreiben125 Arrays die Zweite: Es geht auch krzer!128 9 Inhaltsverzeichnis Assoziativ: Monatsnamen als Array129 und wieder die Kurzform131 Den Monat ausgeben132 Schlussbemerkung133 Zusammenfassung133 Ein paar Fragen 134 und ein paar Aufgaben135 5Seiten mit Passwort schtzen137 Formular fr das Passwort138 Senden mit Methode: post oder get?139 Ausgabe des Passworts141 Testen mit if-else143 Schnheitsfehler? Variablentest mit isset()!144 Mehr Mglichkeiten mit switch147 Inhalt mit include einbinden151 Mehr Sicherheit: Endungs- und Ordnertricks152 Schlussbemerkung154 Zusammenfassung155 Ein paar Fragen 156 und ein paar Aufgaben156 6Etwas Mathe: Taschen(geld)rechner157 Nicht ohne Grund: Grundrechenarten158 Rechenpraxis: Zwei mal Drei macht Vier 159 Einnahmen minus Ausgaben: Taschengeldrechner160 $_SERVER['PHP_SELF']: Daten an sich selbstschicken164 Wie viel bleibt brig? Prozentrechnung!165 Traurige Sulen: Ergebnis als Diagramm169 Plus, Minus, Mal, Geteilt? Select!170 So liest du ein SELECT-Feld aus172 10 Inhaltsverzeichnis Rechner de luxe: Wir schreiben eine Funktion174 Der Rechner im Einsatz177 Schlussbemerkung180 Zusammenfassung180 Ein paar Fragen 181 und ein paar Aufgaben181 7Schleifen: Die Gratulationsmaschine183 Die while-Schleife184 Prfung zu Fu: do while189 Der Bestseller: for190 Und die Geburtstagskerzen?192 Have a break: Abbruchbedingung einfgen194 Und noch eine Schleife: foreach195 Schlussbemerkung199 Zusammenfassung199 Ein paar Fragen 199 und ein paar Aufgaben200 8Frs Feedback: Formmailer selbst gestrickt201 Die Funktion mail()202 E-Mail mit Datums- und Zeitstempel204 Das Feedback-Formular205 Professionell mailen: Fehler unterdrcken207 Formular um ein Name-Feld erweitern210 Backslashes entfernen mit stripslashes()211 Prfen! Sind alle Felder ausgefllt?212 Inhalt in die Formularfelder schreiben216 Erweiterter Fehlertest: Mindestlnge undE-Mail-Check221 Krnender Abschluss: Universal-Formmailer227 Schlussbemerkung231 11Inhaltsverzeichnis Zusammenfassung232 Ein paar Fragen 232 und ein paar Aufgaben233 9Surfer wiedererkennen mit Cookies235 Was sind Cookies?236 Grundeinstellungen im Browser239 Krmelmonsters Keksfabrik: Cookies backen241 Der Keks bekommt ein MHD243 Herumkrmeln:Cookies verspeisen244 Aufgegessen: Cookies lschen245 Schlussbemerkung246 Zusammenfassung246 Ein paar Fragen 246 und ein paar Aufgaben246 10Besucherzhler selbst gebaut247 Zwei Dateien: So funktioniert das Beispiel248 Hitmaschine: Ein Textcounter248 Datei zum Lesen ffnen249 Der geheimnisvolle Dateizeiger250 Daten in eine Textdatei schreiben252 Rechtevergabe mit chmod253 Counter de luxe mit Cookies256 So funktioniert das Skript257 Schlussbemerkung258 Zusammenfassung258 Ein paar Fragen 258 und ein paar Aufgaben259 11Eine Umfrage mit grafischer Auswertung261 So sieht das Beispiel aus262 Durch Komma separierte Textdatei263 12 Inhaltsverzeichnis Text am Trennzeichen zerlegen266 Die unsichtbare Tabelle fr das Diagramm267 und wieder etwas Mathe: Dreisatz268 Die Umfrageseite: So funktioniert das Skript270 Schummeln verboten: Mehrfachvotes unterdrcken 273 und wieder entsteht ein Array274 Schlussbemerkung277 Zusammenfassung277 Ein paar Fragen 277 und ein paar Aufgaben278 12Das eigene Gstebuch 279 (Zu) simpel gestrickt: Version 1280 Hacking-Versuche unterbinden283 Die Funktionen nl2br() und readfile()283 Schon besser: Gstebuch Version 2284 So vermeidest du Doppeleintrge286 Gstebuch sicherer machen290 Schlussbemerkung291 Zusammenfassung292 Ein paar Fragen 292 und ein paar Aufgaben292 13Ein Adressbuch fr dein Team295 Planung ist die halbe Miete296 Geniales Tool: phpMyAdmin298 Etwas SQL zum Anlegen der Datenbanktabelle300 Die Datentypen im berblick304 Trage ein paar Adressen ein!307 Alle Teammitglieder da? Schaue nach!312 Daten als HTML-Tabelle ausgeben317 Mit PHP: Eingabeformular selbst gestrickt327 13Inhaltsverzeichnis Schlussbemerkung332 Zusammenfassung332 Ein paar Fragen 333 und ein paar Aufgaben334 14Gstebuch de luxe als Datenbanktabelle335 Datenbanktabelle planen336 Daten erst einmal ausgeben338 Das Eingabeformular entsteht343 Mit Sicherheit: Reloadsperre und Magic Quotes348 Nicht alle Datenstze auf einmal354 Links fr die seitenweise Ausgabe357 Schlussbemerkung361 Zusammenfassung361 Ein paar Fragen 362 und ein paar Aufgaben362 15Weblog fr Kids: Das Mini-CMS365 Pflichtenheft: Zuerst planst du das Projekt366 Schickes Design: Die Ausgabe aller Daten368 Datenbankabfrage: Der MySQL-Teil im berblick372 News von Gestern? ltere Eintrge anzeigen!375 Passwortschutz mit Cookie377 So bindest du die Beitrge ein379 HTML in PHP mit heredoc380 Mehr gefllig? Hier klicken!383 Die Funktionen strlen() und substring()385 Schlussbemerkung389 Zusammenfassung389 Ein paar Fragen 390 und ein paar Aufgaben390 14 Inhaltsverzeichnis 16Aktivitten verwalten: Wer kommt mitins Kino?391 Das Adressbuch bekommt Gesellschaft392 Ist das noch normal? Daten aufteilen!395 Nicht vergessen: Das Eingabeformular399 Bitte besttige: Name und Nutzer-ID403 Wer kommt mit? Aus zwei mach drei!406 SQL fr Profis: Von Joins und Funktionen411 Schlussbemerkung416 Zusammenfassung417 Ein paar Fragen 417 und ein paar Aufgaben417 17Automatisch Geburtstagsgre versenden419 MySQL und dein Dienstleister420 ALTER TABLE: Neue Spalte mit ADD COLUMN420 Vorberlegung: Pseudo-Cronjob einrichten421 So klappts: Das Geburtstags-Skript422 Schlussbemerkung426 Zusammenfassung427 Ein paar Fragen 427 und ein paar Aufgaben428 Anhang A: Fr Eltern und Lehrer429 Anhang B: Hochladen der Seiten mit FTP431 Anhang C437 Empfehlenswerte PHP-Editoren437 PHP und MySQL lernen438 Stichwortverzeichnis 439 15

Vorwort PHP was ist das? Lass mich dazu eine kleine Geschichte erzhlen! EswareinmaleinTyp,derhieRasmus.UndRasmushatteeineeigene Homepage.Zugegeben,dasistheutenichtsBesonderes.Dochdamals (1994)besaendiemeistenHomepagesdenCharmeeinerverhauenen Mathearbeit.EsfehltederPfiff.DasrgerteunserenHelden.Kurzerhand schrieb Rasmus ein paar Befehle, um seine Homepage aufzupeppen. Eine neue Programmiersprache war geboren! Er nannte sie Personal Homepage-Tools, kurz PHP. Und weil PHP so einfach war, fanden sich bald ein paar andere Computer-experten,dieimmermehrPeppzuPHPhinzufgten.Gemeinsamentwi-ckeltenundentwickelnsiePHPzureinerrichtigcoolenHomepage-Aufpepp-Sprache:EgalobBesucherzhleroderGstebuchallesdas konnte nun mit relativ wenig Aufwand gebastelt werden. Wenn du dieses Buch liest, gibt es schon die PHP-Version 5.4 oder sogar schon6daistinderZwischenzeitalsoallerhandpassiert.Auchauf deiner Homepage wird mit PHP bald allerhand passieren. Versprochen! DochwozubrauchstdudiesesDatenbankprogrammnamensMySQL?Und wasistdasgenau?Daserzhleichdirgleich!Dochvorhersprechenwir berdieSache,umdiesichimBuch(fast)allesdrehtberdasPro-grammieren. Was bedeutet eigentlich Programmieren? ProgrammierenistwennmandemComputersagt,woderHaselang luft. Du gibst dem Computer Befehle, die er automatisch ausfhren muss. Angenommen,LarsLabertaschebestelltaufdeinerHomepagedreiEimer deinerselbstgebrautenSpezial-KaugummismitSprechblasen-Garantie. DannsollderHomepage-ComputerdieseBestellungandichperE-Mail weiterleiten.Undzwarsoschnellwiemglich.DamitderComputerdas auchsomachtwieduwillst,schreibstduihmallesvorhergenauauf.Du gibst dem Rechner die entsprechenden Befehle und Anweisungen. 16 Vorwort Vorwort UnddaliegtderHaseimPfeffer:ComputerverstehenkeinDeutsch!Du musst wohl oder bel die Sprache der Computer lernen. Diese heit in un-serem Fall eben PHP. Wenn Lars hinterher doch 5Eimer Lakritzschnecken oder 3 SackGem-sezwiebelngeliefertbekommt,hastduwohleinenProgrammfehlerge-macht. Aber das steht auf einem anderen Blatt. Programmfehler gehren zurProgrammierer-KarrieredazuwiederGeigerfleckamKinneines Violinspielers. Wozu sind Datenbanken da? Angenommen,deinkleinesGeschftaufderHomepagestartetrichtig durch:LarsistinzwischenStammkundegeworden.NebenLarsbestellen noch Lukas, Laura, Tim,MichelleundJanregelmigdeineselbstgekoch-ten Kaugummis. Tglich kommen unzhlige Bestellungen. Um weniger Stress zu haben, mchtest du nicht mehr jede einzelne Bestel-lungvomComputergeschicktbekommen.DubefiehlstdemComputer, alleBestellungenineineListezuschreiben.SolcheineListeistaufgebaut wie eine Tabelle: Alles steht fein suberlich untereinander. DieseeineTabellen-ListewirdnunalsDatenbanktabellebezeichnet.Das ist sehr bersichtlich, weil jede Bestellung in einer eigenen Zeile steht.Halt, da wre noch eine Kleinigkeit: Wenn du Datenbanktabellen einset-zenwillst,brauchstduwiedereinspeziellesProgramm,dasDatenbank-programm. Und hier nehmen wir MySQL. Warum? Weil MySQL viel kann, nichts kostet und sich wunderbar mit PHP vertrgt. Merke dir: Eine Datenbanktabelle ist eine Art Liste in Tabellenform. Sie hilft dir, deine Daten effektiver zu speichern. Du kannst sie, musst sie aber nicht einsetzen.EineodermehrerezusammengehrigeDatenbanktabellenwer-den auch als Datenbank bezeichnet. AmBeispieleinesGstebucheszeigeichdirspter,wiemanesohneund mit Datenbankuntersttzung machen kann. Apropos machen 17Was kannst du mit PHP und MySQL alles machen? Was kannst du mit PHP und MySQL alles machen? Fastalles!WiewreesmiteinemZhler?DemebenerwhntenGste-buch?DerUmfrage?DumchtestdieaktuelleUhrzeitaufderHomepage anzeigen? Das Datum? Du willst dem Surfer mitteilen, dass er schon einmal aufdeinerHomepagewar.KeinProblem!berprfe,obdasFormular(z. B. frdieKaugummi-Bestellung!)richtigausgeflltwurde.ZeigeLarsLaber-taschealleBestelldatennocheinmalan.SchreibeeinProgramm,welches deinen fleiigen Bestellern bei jeder Bestellung eine Dankes-E-Mail schickt. Das Grte: Vieles davon geht sogar schon allein mit PHP. Doch ein Daten-bankprogrammwieMySQListdannungeschlagen,wennvieleInformatio-nenverknpftwerdenmssen.Klingtkompliziert?Nehmenwiran,duer-weiterstdasAngebotdeineskleinenInternet-Ladens.Nungibtesneben denKautschisauchLakritzschneckenmiteingebautemDrehwurm, PfefferminzbonbonsmitAnisgeschmackundandereselbstgemachte Leckereien. Wie stellst du deine Kstlichkeiten ins Netz? Du trgst alle Da-ten fein suberlich untereinander in eine weitere Datenbanktabelle ein. Es gibt also eine extra Liste fr deine Sigkeiten und eine weitere Liste fr dieBestellungen.DasmachtesfrdenComputereinfacher,dieDatenzu verwalten, weil alles wunderbar geordnet ist.Dochdamitnichtgenug.WeisedenComputeran,BestellungundAdress-daten in getrennten Tabellen zu fhren. Das ist ungeheuer praktisch, denn nun muss Lars seine Daten nicht bei jeder Bestellung neu eingeben. Er be-kommteinfacheineNummerundwirdjedesMalanhanddieserNummer vom Computer wiedererkannt. Lange Rede, kurzer Sinn: Im Endeffekt hast du ein richtiges kleines Sys-temvonmiteinanderverknpftenDatenbanktabellen.FrjedenZweck gibtesdiepassendeTabelle:EinefrdieProdukte,einefrdieKunden undeinefrdieBestellungen.AlleTabellengehrenzusammen:Dasist ungeheuerpraktischundeffektiv.DamithastdueinetolleDatenbank geschaffen! Wenn du dieses Prinzip verstanden hast, kannst du praktisch alles mit PHP undMySQLmachen.Unddiesestolle Prinzipschauenwir uns in den letz-tenKapitelndesBuchesundauchimFortsetzungsbandPHPundMySQL Praxisbuch fr Kids etwas nher an. 18 Vorwort Vorwort Was ist ein Webserver und wozu brauchst du den? WaszumTeufelistdennnunderWebserver?EsistdeinHomepage-Computer.AlsoderRechner,aufdemdeineHomepageliegt.Moment mal,denkstduhiervielleicht.MeineHomepageliegtdochz. B.aufmei-nemRechnerdaheim.Dorthabeichsieerstelltunddortkannichsiemir jederzeit ansehen. Dasstimmtschon,andeinemRechnerkannstdudeineHomepagesehen. Und du kannst sie deinen Kumpels zeigen. Doch damit alle etwas von dei-nenSeitenhaben,musstdudieseerstaufdenHomepage-Computerim Web hochladen. Also auf den sogenannten Webserver. Das Wort Server kommt vom Englischen to serve. Das bedeutet soviel wie dienen.DerWebserveristderDienerimWeb.HierliegendieWebsei-ten,dieHomepages.DerWebserverdientsoallenBesuchern.Denndie BesucherknnendieSeitennunvomWebserverabrufenundmitihrem Browser betrachten. Der Webserver sorgt brigens auch dafr, dass PHP und MySQL richtig gut funktionieren. Er fhrt also die von dir aufgeschriebenen Programmbefehle aus. Erst dann zeigt er dem Besucher die gewnschte Seite. DerbekanntesteundbesteWebserverheitbrigensApache.Jarichtig, ApachewiedergleichnamigeIndianerstamm.BeisolcheinemtollenNa-menmussdieSacheziemlichcoolsein.Dasistsieauch!DieArbeitmit PHP, MySQL und dem Apachen macht irrsinnigen Spa. How! Wie arbeitest du mit diesem Buch? LahmesLesenistout,Selbermachenistin:DiesesBuchenthltnichtnur sturenTextunddeProgrammanweisungen,sondernvorallemBeispiele, Tipps und Tricks. Mitmachen ist also Pflicht. Es lohnt sich! Doch wenn du mal keine Lust zum Abschreiben hast (oder dich immer wie-der verschreibst), ist das auch nicht schlimm! Ich habe dir alle Beispiele auf die CD gepackt. Ansonsten zeige ich dir schnell noch, welche Symbole be-sonders wichtig sind. 19Was brauchst du fr dieses Buch? Arbeitsschritte >WenndudiesesZeichensiehst,heitdas:Achtung,Action!Esgibt etwaszutun.SchreibeeineProgrammzeile,whleeinenBefehloder fhreeinenIndianer-Freudentanzauf,weildeinProgrammendlich funktioniert. Stolperfallen und Rettungsringe DiesesSymbolfindestdudagegenimmerdann,wennesproblematisch wird. Hund Buffi hilft dir, Stolperfallen von vornherein zu umgehen. Lies also besonders grndlich, wenn du auf dieses Zeichen stt. Vielleicht ist dasjageradederRettungsring,denduindiesemMomentbrauchst? Aber auch Tipps und Tricks bauen wir in solche Ksten ein. Besonders wichtige Stellen im Buch ImmerwennsolcheinAusrufezeichenamTextranderscheint,wirdes besonderswichtig.DusolltestdenentsprechendenKastenvielleicht zweimal lesen. Fragen und Aufgaben WiederholungistdieMutterderPorzellankiste(odersohnlich).Deshalb gibt es am Ende jedes Kapitels ein paar Fragen und ein paar Aufgaben. Wie heitessoschn:bungmachtdenMeister.DieAntwortenunddieL-sungen zu den Aufgaben findest du auf der beiliegenden CD. Was brauchst du fr dieses Buch? Nun, einen Platz im Bcherregal. Spa beiseite, natrlich einen Computer! EsmussnichteinmalderallerneusteRechnersein.HauptsacheWindows undeinInternet-Browsersindvorhanden.Wirgebenunsdabeiganzbe-scheiden,esmssennichtdieneustenVersionensein.Dukannstsogar noch Windows 98 verwenden. Oder natrlich Windows 2000, Me bzw. das aktuelle Windows XP. Vom Prinzip her ist das Vorgehen bei allen Versionen gleich. Sollte es hier Unterschiede geben, mache ich dich rechtzeitig darauf aufmerksam.) Bei den Browsern ist Firefox sicher die beste Wahl, aber auch der Internet Explorer, Opera, Safari oder Google Chrome sind geeignet. 20 Vorwort Vorwort Alles andere findest du auf der CD! Mehr brauchst du nicht! Tatsache, um den Rest musst du dich nicht km-mern.AufCDliefernwirdirallesanderemit,damitdusofortloslegen kannst. Hier findest du unter anderem: 0PSPad eine sehr gute Windows-Freeware zum Erstellen von Homepa-ges mit PHP, ein Programm vom Ja Fiala. 0Aptana Studio, die auf Java basierende Alternative fr Nutzer von Linux und Mac OS. (Aber auch fr Windows-Nutzer!) 0PHPselbst(zumProgrammierenderdynamischenWebseiten)und MySQL(dasDatenbankprogramm,ummitDatenbanktabellenOrdnung zu schaffen) 0phpMyAdmin(eineArtgrafischeOberflchefrMySQL,damitduDa-tenbanken und Tabellen bequem einrichten kannst) 0Apache-Webserver(damitduallesaufdemeigenenComputerauspro-bierenkannstundsotust,alsobdueineneigenenWebserverhttest. How!) 0XAMPP: Ein Super-Programm, welches dir alle bisher genannten Sachen fast vollautomatisch auf deinem Rechner einrichtet 0FileZilla, ein Programm zum Hochladen deiner Homepage auf den Web-server 0SELFHTML,eineschonfastzuprofimigeEinfhrunginHTML,die Sprache zum Erstellen von Homepages 0NotePad++,einflinkerWindows-EditorzumschnellenBearbeitenvon PHP-Dateien. Wie gut kommst du mit dem Computer klar? Du solltest dich schon ein wenig mit dem Computer auskennen. Du kommst mitMausundTastaturklar?Prima!Dannkannkaumetwasschiefgehen. Wenn du zustzlich noch weit, was Ordner sind und wie man diese anlegt, gehrstduschonindieProfi-Liga.(Undwennnicht,istdashalbsowild, ichzeigeesdir.)ImNotfallfragstdueinfachdeineFreunde,Geschwister oderEltern.Vielleichtkennendiesichjaaus.Odersiespendierendirein anderesBuchausderReihefrKids?ZumBeispielPCsfrKids(zu Windows Vista) von Hans-Georg Schumann. 21Wie gut kommst du mit dem Computer klar? Was ist neu in Auflage 4 und 5? Fnf Auflagen in fnfeinhalb Jahren das htte sich der Autor dieses Bu-chesnichttrumenlassen.DieersteAuflageerschien2003,diefnfte 2008. Vielen Dank fr das groe Vertrauen! Wir freuen uns riesig ber die-senErfolg.Grundgenug,dengesamtenInhaltkritischzuberprfenund behutsam zu modernisieren.Soviel vorweg: Schon in der vierten Auflage von 2007 gab es umfangreiche Neuerungen,ErgnzungenundErweiterungen!Hiergingesvorallemum dasThemaSicherheit.DiefnfteAuflagehabenwirnochmalsdurchgese-hen und an vielen Stellen verbessert.Wichtig: Das Thema Sicherheit BesondersdasThemaSicherheitspieltinzwischeneineimmerwichtiger werdendeRolle.DieSpamattackenwerden immerheftiger, dieHackerim-merdreister.SelbstgroeProgrammewiedasContent-Management-SystemJoomla oderForenwiephpBBwerdenbzw.wurdenOpfervonHa-ckerattacken. Aus diesem Grund haben wir schon fr Auflage 4 alle Skripte aufSicherheithinberprftundinmanchenFllenetwaserweitert.Au-erdemgebenwirdiranvielenStellenwertvolleTippsundTricks,wiedu deine Skripte von vorn herein gegen Angriffe von auen schtzen kannst. SicherheitisteinProzess,keinZustand.Washeutenochalssichergilt, kann morgen mglicherweise schon erfolgreich gehackt werden. Auch ist der Aufwand fr absolut sichere Skripte so hoch, dass du alleine fr ein wirklichsicheresGstebuchmehrerehundertZeilenCodeschreiben msstest.Wirversuchen,denMittelwegzufindenzwischeneinfacher VerstndlichkeitundDurchschaubarkeitaufdereinenSeiteundSicher-heitderSkripteaufderanderenSeite.Mankannesnochimmerund immereinStckchenaufwendigertreiben.AberanirgendeinerStelle muss dann auch Schluss sein. Videoworkshops InAuflage4habenwirerstmalsVideoworkshopseingefgt.IndiesenVi-deosfhrenwirdirbeispielsweisedieInstallationvonPHPundMySQL mit dem Tool XAMPP vor, damit du sofort mit dem Programmieren lose-legenkannst.DufindestalleVideosimOrdnervideos.RufedieDatei index.html auf. Die Videos liegen im Flashformat vor. Mehr Informati-onen findest du in der Datei liesmich.txt. 22 Vorwort Vorwort Was ist neu in Auflage 6? Wenn du dich bisher gewundert hast, kann ich dich beruhigen: Du hast das richtigeBucherwischt.VordirliegttatschlichschondiesechsteAuflage von 2010. Und das kam so: Kurz vor Weihnachten 2009 erreichte mich der Hilferuf aus dem Verlag: Wir habennur noch ganz wenige Exemplare auf Lager. Der Titel ist schneller ausverkauft als gedacht. Wir wrden das Buch am liebsten sofort in einer neuen Auflage drucken! Sofort war ein echtes Problem. Denn fr eine weitere Auflage hatte ich mir ganzheftigeAktualisierungenvorgenommen.IchwolltedieInhalteim Buch grundlegend modernisieren und meine Anleitungen fr die Zukunft fit machen. Das bedeutet: 0 AlleHTML-bzw.PHP-Dateienmsstenimimmerweiterverbreiteten UniversalzeichensatzUnicode(UTF-8)gespeichertwerden.Dennviel-leicht mchtest du auch einmal fremdsprachige Seiten mit allen mgli-chenSonderzeichenerstellenundpflegen?MitUTF-8kannstduselbst Chinesisch rckwrts darstellen, deutsche Umlaute und Sonderzeichen sowieso. Und da inzwischen auch MySQL die Daten im Format UTF-8 si-chert, wre das auch aus diesem Grund sehr wichtig. 0 Dafrmssteicheinenneuen,Unicode-fhigenPHP-Editorfinden, denn der gute alte Weaverslave von Thomas Weinert (der Editor der ers-ten fnf Auflagen) wre mit dem Thema UTF-8 leider berfordert. Scha-de,Thomas,dassdunochkeineZeitzumAktualisierenhattest!Schn, dass ich mit PSPad von Jan Fiala einen guten Ersatz gefunden habe. 0 Auerdem msste ich beim Thema Datenbankzugriff auf die moderne-renPHP 5-Funktionenzurckgreifen.SchonausSicherheitsgrnden! PHP5istinzwischenderMindeststandard,praktischalleAnbieterha-ben von PHP 4 auf PHP 5 umgestellt! Und veraltete Techniken gehren nunmalnichtineinPHP-undMySQL-Lehrbuch.EineMengeArbeit im Interesse der Sicherheit! 0 Die Installation des sogenannten lokalen Webservers (wir verwenden im BuchXAMPP)hatsichgendert.Auchhiermssteicheinekomplett neue Anleitung schreiben. 0 AuchdieInformationenzudenDienstleisternmssteichaktualisieren, denn innerhalb eines Jahres kann viel geschehen. 0 Weiterhinwreesschn,wennichmehrTippsfrMac-undLinux-Nutzereinbauenknnte,dennvorallemderAppleMacintoshgewinnt immermehrFreunde.(AuchwennesnurbeiTippsbleibenwirdfr ausfhrliche Anleitungen fehlt leider der Platz.) 23Was ist neu in Auflage 6? Nun, was soll ich dir schreiben: Ich habe es geschafft! Die vollstndig aktu-alisierte6.Auflageliegtvordir.Weihnachtsbaum,KerzenscheinundBe-scherung sind ausgefallen Silvesterparty und Katerfrhstck auch! Dafr habeichTagundNachtgeschrieben,recherchiert,CodegetipptundCode geprft. Bis kurz vor dem Drucktermin. Denn das bin ich dir schuldig eine gut verstndliche PHP-Anleitung auf der Hhe der Zeit. Und wenn das Buch so gut ankommt wie die Vorauflagen, hat sich die M-he auf jeden Fall gelohnt! Danke fr dein Vertrauen! Danke auch an die vielen, vielen Leser, die mir Tipps, Korrektur- und Ver-besserungsvorschlgegeschickthaben.GanzbesondererDankgehtan Sandra,JonasundvorallemanFalkJoensson(http://jcoud.de).Gerade du,Falk,hastmirmitdeinenumfangreichenKorrektur-undVerbesse-rungsvorschlgensehrgeholfen.Nobodyisperfectundichschongar nicht. Wie gut, dass es solche aufmerksamen Leser gibt wie dich!Das Betriebssystem spielt keine Rolle! Wundere dich nicht, wenn im Buch mal der eine oder andere Browser auf-taucht. Der Grund ist ganz einfach: Ich habe die Anleitungen auf verschie-denenRechnerngetestet.IchzeigedirsowohlAbbildungenvomInternet Explorer8unterWindows7alsauchBildschirmfotosdesaltenInternet Explorer 6 aus Windows XP. Auch Firefox ist natrlich vertreten.WarumdieseVielfalt?Dusollstsehen,dassdasErgebnisnichtvomBe-triebssystem oder Browser abhngt. HTML, PHP und MySQL sind plattform-unabhngig,sielaufenberall!SelbstaufdemMacbookPromitSnow LeopardoderdemaltersschwachenSchulrechnermitWindows2000oder Linux.ImWebbeimDienstleistersowiesoundderarbeitetinderRegel unterLinux!Hauptsache,duhastdasrichtigeWebserver-Programmund den passenden Code-Editor. AproposCode-Editor:DadiemeistenLesermitWindowsarbeiten, kommtderimBuchvorgestellteCode-EditorPSPadausderWindows-Welt.Er istschlankundschnellund luftdaherauchauf lterenRech-nern.DukannstdenAnleitungenjedochauchanMacsoderLinux-Rechnern folgen. Verwende lediglich ein anderes Entwicklungswerkzeug, einenanderenEditor.ProgrammcodeundErgebnisbleibengleich.Fr Mac-undLinux-NutzerempfehleichAptanaStudio.Dufindestdieses ToolaufderCDimOrdnerprogramme/aptana.AptanaStudioistsehr leistungsfhig, bentigt dafr aber einen schnellen Rechner. 24 Vorwort Vorwort Wo gibts Hilfe, wenn es mal klemmt? Melde dich einfach! Fr dieses Buch hat der Autor eine eigene Serviceseite imWebeingerichtet.Surfezuwww.phpkid.de!HierfindestdueinForum, wo du mit anderen Lesern diskutieren und dir Hilfe holen kannst. Weiterhin listen wir brandheie Tipps und Tricks zu Dienstleistern auf und informieren dich zunderungennachdem Druck. Auerdemkannst duFragenstellen, die wir dir dann hoffentlich schnell beantworten. Und du findest evtl. Feh-lerberichtigungen, denn auch Autoren sind nur Menschen. DuhastLustbekommenaufmehr?DannlegenwirdirdieFortsetzung diesesTitelsnamensPHPundMySQLPraxisbuchfrKids(2.Auflage) sehransHerz.DabeistehenaufdemProgramm:einkomplettesForum mitUserverwaltung,dasSchreibeneinesRSS-Feedreaders,einkomfor-tablesFotoalbumundsogardasPlanenundProgrammiereneinesCon-tent-Management-Systems.Ganznebenbeischnupperstdusogarnoch ein wenig Objektorientierungsluft und lernst, wie man richtig guten Co-de schreibt. Gleicher Autor, gleicher Verlag, gleicher Preis.Voil-jetztgehtesaberlosmitPHPundMySQL!Dochzuvorlernstdu noch etwas HTML und CSS. Gleich auf den nchsten Seiten. Einverstanden? 25 1 Deine coole Homepage mit HTML Auf los gehts los! Wenn du mit PHP programmieren willst, musst du HTML knnen. HTML ist schlielich die Sprache, mit der eine Homepage geschrie-ben wird. Ohne HTML macht PHP keinen Sinn. Du kannst noch kein HTML? Nichtschlimm!IndiesemKapitellernstdudasWichtigstezumThema. Glaube mir, es ist kinderleicht. Na ja, fast Du kannst schon HTML? Umso besser! Mache trotzdem mit, denn in diesem KapitelzeigeichdireinsuperProgramm:einensogenanntenHTML-und PHP-Editor. Und ich verrate dir, wie du dein Projekt am besten organisierst.In diesem Kapitel lernst du, $wie man eine HTML-Seite erstellt $wie man berschriften und Abstze notiert $wie man Grafiken in die Seite einfgt und mit Farben arbeitet $wie man Querverweise setzt, die Hyperlinks $wie man Tabellen erstellt $wie man der Seite mit Style Sheets ein schickes Layout verpasst Doch bevor es losgeht, besprechen wir gleich zu Beginn ein paar Dinge, die verdammt wichtig sind. 26 Deine coole Homepage mit HTML Kapitel 1Richte dir einen Projektordner ein! Ordnung ist das halbe Leben, geht dir dieser Spruch auch so auf die Nerven wiemir?DabeikanneinwenigOrdnungimNachhineinvielZeitsparen! Und schon sind wir beim Thema Ordner. Richte dir zuerst einen Projektord-nerfrdeineExperimenteein.Diesennennenwirphpkidundlegenihn direkt unter der FESTPLATTE C: ab! Projektordner phpkid einrichten Wie geht das? Ganz einfach!>StartezuerstdenWindowsExplorer.DiecoolsteMethode:Duhltst die Taste [Win] auf deiner Tastaturgedrckt.Das ist inderRegel die zweiteoderdritteTastevonlinksinderunterenReihe.Duerkennst sieamWindows-Logo.Jetzttippstdumutigundunverzagtein[E] wieechteinfachoderwieExplorer.Zackschonstartetdas Ordner-Verwaltungs-Programm namens Windows Explorer. >Was nun, sprach das Huhn? Achte darauf, dass dein Laufwerk C: (die Festplatte) markiert ist. Klicke also auf der linken Seite auf das Sym-bolfrdeineFESTPLATTE.EsbefindetsichunterhalbdesSymbols COMPUTER (Windows 7 bzw. Vista) bzw. ARBEITSPLATZ (Windows XP). >Und nun richtest du deinen Ordner ein. In Windows 7 klickst du ein-fach auf die Schaltflche NEUER ORDNER: In Windows Vista gibt es diese praktische Schaltflche leider noch nicht. DortklickstduaufdenMeneintragORGANISIERENundwhlstdenMe-npunktNEUERORDNER.InWindowsXPundWindows2000istderWeg nochetwaslnger.DuklickstimMenDATEIaufdenBefehlNEU.Ein weiteres Men klappt zur Seite. Whle hier den Befehl ORDNER. 27Richte dir einen Projektordner ein! >JetzterscheinteinPlatzhalter-OrdnermitderBezeichnungNeuer Ordner. Dieser Platzhaltername ist markiert. Du kannst ihn also direkt berschreiben.Klickenochnirgends,sonderntippeeinfachlos.Tippe den Namen des neuen Ordners, im Beispiel phpkid. >Geschafft? Dann drcke einfach [Enter]! Fertig ist der neue Ordner. Suche docheinmaldeinenneuenOrdner.Du findestihn im linkenBereich desWindows-Explorers.ErwirdalphabetischzwischendenanderenOrd-nern einsortiert. Sollte dein Ordner nicht gleich zu sehen sein, ist das nicht schlimm.DerWindowsExploreristmanchmaleinlangsamerGeselle,er vergisstdasAktualisierenderAnsicht.Hilfetwasnach,drckeaufdie Funktionstaste [F5] auf deiner Tastatur.Hoppla,duhastdichbeimOrdnernamenverschrieben?OderderOrdner wurde an der falschen Stelle eingerichtet? Kein Problem! Wenn du einen Ordner umbenennen willst, klickst du ihn kurz an. Drcke nun die Funk-tionstaste[F2].SchonffnetsichderOrdnernameunddukannstihn korrigieren. Besttige die Umbenennungsaktion wieder mit [Enter]. Na-trlichlsstsichsoeinOrdnerauchlschen.Markiereihnunddrcke die Taste [Entf] auf deiner Tastatur. Schon ist der Ordner weg! Einen weiteren Unterordner einrichten Weildassogutgeklappthat,machenwiresgleichnocheinmal.Erstelle diesmaleinenUnterordnernamenshtml.DieserOrdnersolldirektunter-halbvonphpkidentstehen.DiesenneuenOrdnernutzenwirfrunsere ersten Gehversuche mit HTML. >Markiere den Ordner phpkid im Windows Explorer. Klicke ihn also im linken Bereich an. >WhlenunwiederNEUERORDNER(ORGANISIEREN|NEUERORDNERbzw.DATEI|NEU|ORDNER) und richte den Unterordner html ein. GewhnedirbeiderNamensgebungfrOrdnerundDateiengenerelle Kleinschreibungan.DieOrdnersollenalsophpkidundhtmlundnicht Phpkid und Html heien. Das ist deshalb so wichtig, weil der Webserver (Homepage-Computer)spterganzpingeligzwischenGro-undKlein-schreibung unterscheiden wird. Und wenn du hier etwas vermischst, wird die Homepage im Web nicht oder nicht richtig angezeigt. Bei genereller Kleinschreibung kann hier jedoch nichts anbrennen. Okay? 28 Deine coole Homepage mit HTML Kapitel 1 Bitte blende die Dateiendungen ein! rgert dich auch, dass du unter Windows die Dateiendungen normalerwei-se nicht siehst? Jede Datei hat ja eine typische drei- bis vierstellige Endung, dienacheinemPunktandeneigentlichenDateinamenangehngtwird. Mit.dockennzeichnetmanWord-Dateien,.txtstehtfrTextdateien, .html fr HTML-Dateien und .php fr PHP-Dateien. Normalerweise siehst du diese Endungen nicht. Das ist sehr rgerlich, denn wir brauchen sie! Fr unseren Kurs musst du die Dateiendungen unbedingt eingeschaltet haben! >Rufe den Windows Explorer auf. Wie ging das noch? Halte dafr bei-spielsweisedie[Win]-TasteaufdeinerTastaturgedrcktundtippe kurzein[E].WhlenunimMenORGANISIERENdenBefehlORDNER UND SUCHOPTIONEN. (Windows XP: EXTRAS|ORDNEROPTIONEN.) >Geschafft?DasDialogfensterOrdneroptionenerscheint.Geheins Register ANSICHT, es ist das zweite Register.>Suche nach einer Option, die je nach Windows-Version folgenderma-en heit: Erweiterungen bzw. Dateinamenerweiterungen bei bekann-ten Dateitypen ausblenden. Sie ist abgehakt. Nimm das Hkchen weg! >BesttigedeineEinstellungendurchKlickaufOK.Nunsiehstdubei allenDateinamenauchdietypischeEndungundweitgenau,um welchen Dateityp es sich handelt. Nimm das entsprechende Hkchen weg, klicke es einfach an! HTML auf Knopfdruck mit PSPad Vorhangauf,dieShowbeginnt.Nele,TimundBuffi,Jan(Programmautor) undich(Buchautor)prsentieren:PSPad,denfreienCode-EditorfrWin-dows!EshandeltsichpraktischumeinProgrammzumSchreibendeiner Homepage. Neben HTML beherrscht PSPad aber auch PHP und andere Pro-grammiersprachen.GeschriebenhatdastolleProgrammJanFiala,die Homepage von PSPad findest du unter www.pspad.com. 29HTML auf Knopfdruck mit PSPad So wird PSPad installiert PSPad liegt auf der CD fr dich bereit! Die Installation ist kinderleicht und erfolgt Schritt fr Schritt per Setup Wizard (Installationsassistent). >StartedenWindowsExplorer,z. B.durchGedrckthaltenvon[Win] (dieTastemitdemWindows-Logo)undkurzemTippenvon[E]. SchaueindenlinkenBereichdesWindowsExplorers.Gehezum LaufwerkfrdieCDundhangeledichdurchbiszumUnterordner programme/pspad. >HiersiehstdudieDateipspad454inst_en.exe.Doppelklickeauf diese Datei. Je nach Windows-Version erscheinen erst warnende Dia-logfenster, die du besttigen musst. Klicke z. B. auf AUSFHREN bzw. JA. >Geschafft? Das Fenster Welcome to the PSPad Editor Setup Wizard ist erschienen? Prima! Folge den Schritten der Installation. >Klicke auf NEXT, um zum nchsten Bildschirm zu gelangen. Klicke vor I accepttheagreement.NunklickstduerneutaufdieSchaltflche NEXT und hangelst dich Schritt fr Schritt durch die gesamte Installa-tion! >KlickealsoimmerwiederaufNEXT.DieVoreinstellungengehenin Ordnung, die kannst du stets bernehmen.>NEXTverschwindet,dieSchaltflcheINSTALLerscheint?Dannhastdu eineweitereEtappeaufdeinemWegerreicht.KlickeaufINSTALL jetzt endlich wird das Programm auf deiner Festplatte eingerichtet! >KlickezumSchlussaufFINISH.DasProgrammstartetganzautoma-tisch und zwar auf Deutsch! Wenn du das entsprechende Hkchen im letzten Schritt belassen hast, legt PSPadautomatischeineVerknpfungaufdemDesktopan.Auerdemer-scheintesalsProgrammeintragindersogenanntenSchnellstartleiste rechts neben der START-Schaltflche! Das ist wirklich genial! 30 Deine coole Homepage mit HTML Kapitel 1 Eine HTML-Datei erstellen PSPad ist gestartet? Jetzt erstellst du im Handumdrehen deine erste HTML-Seite.DochvorhersolltenwirunsnochfrdierichtigeHTML-Variante entscheiden. Ich schlage das klassische HTML 4 vor. HastduschonetwasAhnungvonHTML?Fragstdudichauch,welches dierichtigeHTML-Schreibweisesei?DieklassischeoderdieNeufor-mulierung namens XHTML mit strengeren Regeln? Fakt ist, dass die Ent-wicklungvonXHTMLalseigenstndigeSprachegeradeersteingestellt wurde.AnHTML5dagegenwirdfleiiggewerkeltderKlassikerlebt alsoweiter.ZwarwirdesauchvonHTML5wiedereinestrengere XHTML-Variante geben. Aber eben nur als alternative Syntax. Wir blei-ben daher im Buch bei der Schreibweise der bewhrten, klassischen Ver-sion 4.01 und zwar ohne X vor dem HTML. Und so erzeugst du in PSPad eine Musterseite im klassischen HTML 4.01: >WhleimMenDATEIdenBefehlNEU.DasDialogfensterNeuer-scheint. Klicke auf die Registerzunge Neue Datei aus Vorlage erstellen. >Scrolle zum Zweig HTML und klicke auf den Eintrag HTML 4.01 Transi-tional.KlickedanachaufBEARBEITEN,nichtaufOK.(OKwrdeeine neue HTML-Seite in den Editor einfgen, die auf diesem Grundgerst beruht. Doch das Grundgerst ist noch nicht ganz perfekt!) Klicke auf die Schaltflche Bearbeiten, noch nicht auf OK. >DuhastaufBEARBEITENgeklickt?Super!Jetzterscheintdasebener-whnteGrundgerst.UndzwardirektalsVorlage!Dukannstund musst diese Grundgerst-Vorlage wunschgem ndern.31HTML auf Knopfdruck mit PSPad Die HTML-Vorlage von PSPad anpassen SosiehtesausdasHTML-Grundgerst.FrmeinenGeschmackgibtes nocheinigeSchnheitsfehler.UndbevorwirdieeinzelnenZeilengenauer betrachten, merzen wir diese Schnheitsfehler einfach aus. Dievonmirgezeigten Zeilennummernsind beidirinPSPadnichtsicht-bar? Whle ANSICHT/ZEILENNUMMERIERUNG.1 2 3 4 5 6Untitled 7 8 9 10 11 Soviel vorweg: HTML besteht aus Text, der durch sogenannte Tags gesteu-ert wird. Jedes Tag steht in spitzen Klammern. Es gibt in der Regel ein Tag zumEinschaltenundeinszumAbschalten.DasAbschalt-Tagbekommt zustzlich einen Slash (/) vorangestellt.Die Taste mit den spitzen Klammern findest du links unten auf der Tasta-tur.Drcke[ musst du zustzlich die []-Taste gedrckt halten. Die Dinge, die mich stren, habe ich unterstrichen. Es sind zum Glck nicht viele. In Zeile 2 nderst du das cs in de. (Es sei denn, du mchtest deine Webseiten auf Tschechisch erstellen. Unser Programmautor Jan stammt aus Tschechien, das ist der Grund fr cs.)Die Passage windows-1250 am EndevonZeile4ersetzt dudurch utf-8. UTF-8istderUniversalzeichensatz,derdieZeichenallerwichtigenSpra-chen enthlt. Damit decken wir einen viel weiteren Bereich an Sprachen ab als mit dem Windows-Zeichensatz. Schlielich ist Windows nicht der Nabel der Welt! 32 Deine coole Homepage mit HTML Kapitel 1 Zeile5Achtedarauf,dassdasToolfenstersichtbarist(ANSICHT|TOOLFENSTER). Wechsle ins Favoriten-Register, du erkennst es am Herz. >KlickemitderrechtenMaustasteaufdasOrdner-Symbolundwhle den Befehl Neuen Link hinzufgen. >DasDialogfensterNeuenLinkhinzufgenerscheint.Schauerechts neben das Feld Pfad / URL und klicke auf die Schaltflche mit den drei Punkten. Suche den gewnschten Ordner heraus. >Nach Klick auf OK ist der neue Link fertig eine praktische Verknp-fung zum gewnschten Ordner! Lege dir so viele Verknpfungen an, wie du brauchst. Werkzeuge und Suchfunktion Schau dir doch auch die pfiffigen Werkzeuge von PSPad an. Du findest sie imgleichnamigenMen.MirhatesnebenderschongetestetenFarbaus-wahlbesondersderCode-Explorerangetan.DiesesToolzeigtdirdieEle-mente der aktiven Datei in einer baumartigen Struktur. Ausprobieren! Mein zweitliebstes Tool heit Text-Diff:AktuelleDateivergleichen. So kannst du zwei verschiedene Versionen eines Dokuments laden. PSPad hebt die Unter-schiede farblich hervor. Auch die ausgefeilte Suchfunktion bentige ich recht hufig, du findest sie imgleichnamigenMen.MeinFavoritheitSuchen/ErsetzeninDateien. Damit kannst du beispielsweise ganze Ordner durchsuchen. 64 Deine coole Homepage mit HTML Kapitel 1Schlussbemerkung Uff!DaswareineganzeMengeHTMLaufeinmal.GuteHTML-Kenntnisse sind jedoch die Voraussetzung fr die PHP-Programmierung. Immerhin bist du jetzt schon ein kleiner HTML-Experte.BeimThemaHTMLhabenwirunsfrdieklassischeVersionHTML4ent-schieden,wobeiichschoninRichtungHTML5vordenke.Wirlassendie strengere und weniger beliebte XHTML-Syntax auen vor. Du mchtest tiefer in (X)HTML (und CSS) einsteigen und die modernsten VersionenundneustenTechnikenkennenlernen?Dannempfehleichdir die wunderbaren Bcher HTML fr Kids und CSS fr Kids von meinen AutorenkollegenRobertAgularbzw.DavidSigos.Vorallemdasletztge-nannteBuchbietetdireinehervorragendeEinfhrunginschickesSei-tenlayout.Die Beispieldateien findest du brigens auch auf der CD zum Buch. Schaue in den Unterordner beispiele/kapitel01. Zusammenfassung 0DukannstmitdemPSPadblitzschnelldasGrundgersteinesHTML-Dokumentszaubern.WhleimMenDATEIdenBefehlNEUunddop-pelklicke auf den entsprechenden Eintrag. 0DufgstmitdenentsprechendenTagsganzlssigberschriften(z. B. )undAbstzeein.SetzedenentsprechendenTexteinfach innerhalb der Tags ein. 0Duweit,wiedumitdemTageine GrafikindeineHomepageeinfgst.ZiehedieGrafikdateieinfachaus der Dateiliste des Toolfensters in dein HTML-Dokument. Passe die Attri-bute und Werte des Tags dann wunschgem an. 0DukannstmitAufzhlungenundmitListen mitHTMLerstellen.DunotierstbeliebigvieleListen-Eintrgezwischen . 0DuerstellstHyperlinksnachdemMuster Text fr Hyperlinks. 0DuschreibstHTML-TabellenmitdenentsprechendenTags , , und . 65Ein paar Fragen 0Du erstellst externe CSS-Dateien und steuerst damit das Aussehen dei-ner Homepage. Das sind Textdateien mit der Endung .css. Hier notierst dumitHilfevonAttributen,wiedieeinzelnenTagsformatiertwerden sollen. Das Attribut fr die Schriftart heit z. B. font-family.0DuarbeitestmitFarben,legstdieBreitefestmitHilfeeines -Containers und dem Attribut width. 0Duweit,wie dumit den -Tags undmit Kontrollkst-cheneinUmfrageformularvorbereitenkannstundhastdenSUBMIT-Button ausprobiert. Ein paar Fragen Und jetzt bist du an der Reihe. Beantworte zuerst ein paar Fragen und lse dann ein paar Aufgaben. Viel Spa und viel Erfolg! 1.Zwischen welchen Tags wird der Kopfbereich des Dokuments notiert? 2.Wie heit der Farbname fr kastanienbraun? Wie lautet der dazugeh-rige hexadezimale Farbcode und wie die RGB-Syntax? 3.WiesehendieKommentarzeichenaus,dieinCSS-Dateienverwendet werden? DieAntwortenzudenFragensteckenallesamtaufderCDzumBuch. Schaue im Ordner fragen nach! und ein paar Aufgaben 1.SchaueindieSeiteindex.html.FgeunterderAufzhlungdeiner Hobbys eine Linie ein. Welches Tag verwendest du dafr? 2.SetzeganzobenaufdieSeiteindex.htmleinenneuenAbsatz,und zwarunterhalbvon.Fgedortei-nen Verweis auf die zweite Seite umfrage.html ein. Schreibe als Link-text: Zur Umfrage. Setze ganz oben auf der Umfrage-Seite (direkt unter ) ebenfalls einen Absatz ein. Hier soll einen Link zurck verwei-sen. Dieser soll heien: Zur Startseite. 66 Deine coole Homepage mit HTML Kapitel 1 3.PrfedeineSeitenaufKorrekt-heit.SurfedazuzumPrfdienst desW3C.(Dahintersteckendie Leute, die HTML erfunden haben.)Surfezuhttp://validator.w3.org. GeheinsRegisterValidatebyFile Upload.KlickeaufdenButton DURCHSUCHEN.Suchediezupr-fende Datei heraus und klicke auf CHECK.DiePrfung funktioniertnurrichtig,wenn die Dateieine Dokumenttyp-Deklaration besitzt. Du darfst diese erste Zeile mit Zuerstachtedarauf,dasskeinProgrammaufdeinemRechneraktiv ist. Das knnte die Installation stren. Gehe nun in den entsprechen-den Ordner fr XAMPP auf der CD, und zwar in programme/xampp. 77Ganz einfach: Webserver selbst installiert! Der Doppelklick startet die Installation. >DoppelklickeaufdieDateixampp-win32-1.7.3.exe.(Fallsdudie neuste Version von XAMPP aus dem Internet geladen hast, lautet der Dateinamevielleichtschonxampp-win32-1.7.4.exe.)Eshandelt sich um ein selbstauspackendes RAR-Archiv. Die Installation wird au-tomatischgestartet.UnterWindowsVistaund7musstduvorherin aller Regel noch eine Sicherheitswarnung besttigen. >Das Fenster XAMPP for Windows erscheint. Schaue zum Feld Destina-tionFolder. Steht bei dir auch C:\ in diesem Feld? Super! Hier sollte auf jeden Fall der Laufwerksbuchstabe hin wobei das Laufwerk auch ein USB-Stick oder eine externe Festplatte sein darf! Der Installationspfad (Destination Folder) sollte im Beispiel C:\ lauten. >KlickeaufINSTALLundgeduldedichdieDateienwerdenentpackt! Das kann eine ganze Weile dauern. Im Ergebnis entsteht unter C: bzw. dem von dir gewhlten Laufwerk ein Extraordner namens xampp. (Da-von kannst du dich gleich nach erfolgreicher Installation berzeugen.) 78 Installiere deinen eigenen Webserver! Kapitel 2 >NunerscheinennacheinandermerkwrdigeschwarzeSetup-Bild-schirme!DortmusstdujeweilsdenaktivenBuchstaben(ywieyes bzw. n wie no) mit [Enter] besttigen bzw. ggf. wunschgem anpas-sen, damit der Einrichtungsprozess abgeschlossen werden kann. Shortcuts(Verknpfungen)aufdemDesktopund im Startmensind einefeineSache. Das y fr yes ist voreingestellt. Besttige mit [Enter]! >Drcke jetzt immer wieder auf [Enter], um die Fragen zu besttigen. Aneiner Stellewirstdu gefragt: ShouldImakeaportableXAMPPwith-outdrive letters? Wenn du XAMPP nur auf der lokalen Festplatte instal-lierst, knntest du das n fr no eigentlich belassen. Soll XAMPP jedoch als portable (tragbare) Version auf einem USB-Stick oder einer tragbaren Festplatteeingerichtetwerden,darfst dukeine driveletters(Laufwerks-buchstaben)zulassen.AberauchaufderlokalenFestplatteentscheide ich mich dagegen. So kann ich XAMPP immer schnell mal mitnehmen. EinfachdenXAMPP-OrdnernachtrglichaufdenUSB-Stickkopieren und direkt am Computer von Freunden nutzen! Ist doch super, oder? Fol-ge meiner Empfehlung und tippe an dieser Stelle vorher auf alle Flle ein y fr yes. Drcke erst dann auf [Enter]. >Esgehtweitermitdem[Enter],[Enter]umdienchstenbeiden Fenster zu besttigen. Am Schluss landest du bei dieser Auswahl: 79Ganz einfach: Webserver selbst installiert! >Tipperuhigersteinmaleinxfrexit.DurchDruckauf[Enter]ver-lsst du das Setup-Skript und kannst dich in Ruhe umsehen. Apropos installiert: XAMPP hinterlsst dabei keinerlei Spuren. Keine Eintr-geinirgendwelchenRegistrierdatenbanken,keinnichts!WennduXAMPP lschen mchtest, lschst du einfach den kompletten Ordner xampp! (Oder du rufst die Datei uninstall_xampp.bat aus dem xampp-Ordner auf.) So startest du XAMPP DumchtestXAMPPstarten?UnddamitdenApacheWebserver,PHP, MySQL und phpMyAdmin? Kein Problem! Wozu gibt es denn das neue Ver-knpfungssymbolaufdemDesktop?DoppelklickeeinfachaufdasSymbol XAMPP Control Panel bzw. rufe diesen Eintrag ber das Startmen auf. Das geniale XAMPP Control Panel startet. Damit zndest du nun den Apa-che-WebserverunddenMySQL-Datenbankserver.Dafrbentigstdunur diebeidenoberenSTART-Schaltflchen.Klickezuerstaufdenobersten START-Knopf,denrechtsnebenApache.WarteeinpaarSekunden.Whle danach den START-Knopf darunter, den rechts neben MySQL. Starte den Apache-Webserver (oberstes Modul) und MySQL (zweites Modul von oben) jeweils durch Klick auf die daneben angeordnete START-Schaltflche. Der Text Running erscheint und die START-Schaltflche verwandelt sich in eine STOP-Schaltflche. NachKlickaufdiejeweiligeSTART-Schaltflchemeldetsichgegebenen-fallseinwarnendesFensterdeinerFirewall.DasgehtinOrdnung,Win-dows passt schlielich auf. Erlaube je nach Firewall den Zugriff bzw. Ein-satz des Webservers und von MySQL in deinem lokalen Netz. 80 Installiere deinen eigenen Webserver! Kapitel 2 Nanu,esgibtProblememitXAMPP?Achtedarauf,dasskeinkonkurrie-rendes Webserver-Programm aktiv ist. Unter Windows 2000 bzw. XP Pro-fessionalknntedasder InternetInformationServersein.Den darfstdu nichtaktivieren,dadieserdenApache-Webserverbehindernwrde. AuchdasTelefonierprogrammSkype(www.skype.com)musstduggf. herunterfahren,daessichoftnichtmitXAMPPbzw.demlokalenApa-che-Webserver vertrgt. Es kann auch sein, dass eine lokale Firewall oder einimHintergrundarbeitenderVirenscannerdafrsorgt,dassXAMPP nichtrichtigluft.AuchdieaktuellenBrowserprsentierenggf.alle mglichenSicherheitsabfragenundWarnungen,ehesiedichanXAMPP heranlassen. Im Zweifelsfalle gilt: Versuch macht klug! Trenne dich wh-rendderArbeitmitXAMPPunbedingtvomInternetausSicherheits-grnden!SchalteerstdanndieFirewallausbzw.berwindedieSicher-heitsmechanismen deines Browsers. So beendest du XAMPP DumchtestdeinePHP-MySQL-XAMPP-Sitzungbeenden?Dannmusstdu beideModuledurchKlickaufSTOPwiederherunterfahren.Schalteerst MySQL ab und warte einige Sekunden. Stoppe danach den Apache-Webser-ver. Der grne Text Running muss an beiden Stellen verschwunden sein. Auch wenn du das Fenster des XAMPP Control Panel schliet das Steu-erpultbleibtaktiv!EsnistetsichganzrechtsuntenimSystembereich ein.DufindestesnebenderUhrzeit.EinDoppelklickaufdiesesSymbol zaubert das Steuerpult hervor. DumchtestnunauchdasXAMPP-Steuerpultbeenden?KlickeimXAMPP ControlPanelaufdieSchaltflcheEXIT.DufindestsiealsuntersteSchalt-flche in der rechten Reihe. Erst jetzt ist XAMPP wirklich inaktiv. 81Nur noch etwas Handarbeit und fertig! Wo liegen die Dateien von XAMPP? XAMPP hat nun alles installiert, Webserver, PHP, MySQL, phpMyAdmin usw. Fantastisch.DochwoliegendieganzenModule?XAMPPlegtdenApa-che-Webserver,PHP,MySQL,phpMyAdminusw.inUnterordnernunter C:\xampp ab.0Den Apache-Webserver findest du unter C:\xampp\apache 0Die PHP-Dateien liegen unter C:\xampp\php 0MySQL findest du z. B. unter C:\xampp\mysql AuchandereModulewiePerl,MercuryMailServerundderFileZilla-FTP-Serverwerdeninstalliert.DieseKomponentenbentigenwirjedochnicht, du kannst sie ignorieren. Was fr uns wichtig ist: Fr deine eigenen Daten hat XAMPP den Ordner htdocs eingerichtet. Du findest dieses Verzeichnis unter C:\xampp\htdocs. Merkedir diesenOrdnergut!Nocheinmal langsamundzumMitschrei-ben:Alles,wasdujetztPHP-miganstellenwirst,legstduabunter C:\xampp\htdocs! Nur noch etwas Handarbeit und fertig! Hat alles perfekt funktioniert? Probiere es aus! Teste, ob dein lokaler Web-server funktioniert. DieStartseitefrdeinenlokalenWebserverfindestdustetsunterder Adressehttp://127.0.0.1.TippedieseAdresseeinfachindeinen Browser ein. Falls dir diese Nummer zu kryptisch ist, kannst du dir auch die Adresse http://localhost merken. Last but not least gibt es noch einedritteMethode.KennstdudenNamendeinesPCs?Meinerheit z. B.Monarch.Danntippeichhttp://monarchunddrcke[Enter]. Auch das geht also, es fhren tatschlich drei Wege zum gleichen Ziel! 82 Installiere deinen eigenen Webserver! Kapitel 2 Wireinigenunsambestenaufhttp://localhost!TippedieseAdresse ein und drcke [Enter]. Je nach Version von XAMPP siehst du nach Klick auf den Link Deutsch diese oder eine hnliche Seite: XAMPP begrt dich mit einer Begrungs-Seite. DahinterverbirgtsichabernichtsweiteralseineStatus-undDemoseite, die die Macher von XAMPP fr dich vorinstalliert haben. Duwunderstdich,warumindiesemOrdnerschonsovieldrinsteckt?Das sind vor allem Demo- und Beispielprogramme. Du kannst diese Dateien und Ordner bedenkenlos lschen. Du traust dich nicht, das alles zu lschen?DannhabeicheinenanderenTipp:BenennedenOrdnerhtdocsumin htdocs_alt. Erstelle nun unterhalb von xampp einen neuen, leeren Ordner namens htdocs. Auch das funktioniert! (Wenn du dich nicht beim Ordner-namen verschrieben hast!) NachdemDruckauf[Enter]willsichdeinPCstetsinsInternetein-whlen? Versuche eine Option wie Offline bleiben. Whle z. B. den Be-fehl DATEI|OFFLINEBETRIEB. Probiere es dann erneut. 83Testen: phpinfo() auf localhost Testen: phpinfo() auf localhost Wunderbar, jetzt hast du deinen eigenen Webserver. Teste doch einmal, ob alles funktioniert. Zuerst prfen wir, ob unsere eigenen HTML-Seiten ange-zeigt werden. Zuerst eine HTML-Seite Erinnerst du dich an deinen Ordner html, den du unter C:\phpkid einge-richtethattest?IchmeineunserkleinesProjektausKapitel1.Daskommt uns wie gerufen, denn hier gibt es eine Datei index.html. Das ganze Pro-jekt binden wir einfach zur Probe in unseren Webserver ein! >KopierediesenOrdnerhtmlkomplettnachC:\xampp\htdocs.Der neue Pfad muss also lauten C:\xampp\htdocs\html! >Rufe diese Seite nun auf. Dazu tippst du http://localhost/html. Wennallesklappt,wirddieimerstenKapitelerstellteSeite index.html aufgerufen! Aber auch hier sind die Vorteile eines Webservers noch nicht ersichtlich. Es machtkeinengroenUnterschied,obdudieDateidirektvonPSPadbzw. dem Windows Explorer aus startest, oder ber den Webserver abrufst. Die Magie der index.html DuknntestdieseDateiindex.htmlauchdirektdurchDoppelklickstar-ten.DaeseinereineHTML-Seiteist,machtdaskeinenUnterschiedzu-mindestvomErscheinungsbildher.Bemerkstduetwas?Wenndusieber http://localhost/html ffnest, dauert das ein wenig lnger. Es klappt: Aufgerufen wird die index.html aus dem Ordner html. 84 Installiere deinen eigenen Webserver! Kapitel 2 Schlielich muss der Webserver die Anfrage (HTTP-Request) erst bearbeiten und die passende Seite zurck zum Browser schicken. Aproposhttp://localhost/html!Gezeigtwirddieindex.html,ob-wohldudiesenNamenberhauptnichtgetippthattest?DerEnglnder wrdejetztsagenHowcome,wasistlos?Nun,eineindex.htmlwird immerdannangezeigt,wenndudenentsprechendenOrdnernamenein-tippst.Wennkeineindex.htmlvorhandenist,reichtoftaucheineindex.htm odersogareineindex.phpalsStartdatei.Dasistziemlichpraktisch.So musst du nicht erst umstndlich http://localhost/html/index.html tippen, da http://localhost/html gengt! und nun ein PHP-Test UndnunfolgteinkleinerPHP-Test!DafrschreibstdudeineerstePHP-Datei.Diesenennenwirinfo.phpundlegensieindenOrdner C:\xampp\htdocs.Richtig,diesmaldirektindenStammordnerdeines lokalen Webs. Wie geht das? >Starte PSPad. Whle nun im Men DATEI den Befehl NEU. >BleibeimvoreingestelltenRegisterLeereDateierstellenunddoppel-klicke auf PHP. >EineDateiwirderzeugt,wirklichleeristsieallerdingsnicht.Dufin-dest hier schon die PHP-Tags vor. Klicke in die leere Zeile zwischen >Notiere folgenden Befehl: phpinfo(); >Vergiss nicht, die Datei zu speichern. Zur Erinnerung: Wir wollten sie info.php nennen (Endung .php!). 85Testen: phpinfo() auf localhost Achte unbedingt darauf, die Datei inXAMPP zuspeichern.Und zwar im Ordner xampp, Unterordner htdocs. Denn nur wenn sie in htdocs (oder einem Unterordner von htdocs) liegt, wird PHP ausgefhrt. >Rufe die Seite nun folgendermaen auf. Tippe in den Browser: http://localhost/info.php undbesttigemit[Enter].Wennallesgeklappthat,siehstdusolch ein oder ein hnliches Bild: Das ist zum einen der Beweis, dass PHP funktioniert. Zum anderen gibt dir dieFunktionumfangreicheAusknfte.WelchePHP-Versionistaufdeinem Systeminstalliert?WirarbeitenmitPHP5.3.1.WelchesBetriebssystem wirdverwendet?WelcheEinstellungenwurdenvorgenommen?Frden Kenner ist diese Anzeige eine wahre Fundgrube. Fr uns Grund, einen Indi-aner-Freudentanz aufzufhren! Es funktioniert: PHP ist auf deinem System korrekt installiert. 86 Installiere deinen eigenen Webserver! Kapitel 2Duversuchst,dieinfo.phpdirektaufzurufen?Daswirdmisslingen. Entweder du siehst den Quelltext. Oder Windows beschwert sich, weil es mitdiesemDateitypnichtsanfangenkann.SptestensandiesemBei-spiel merkst du, wie wichtig der Webserver ist. Erst der Webserver sorgt dafr, dass die PHP-Anweisung hier die Funktion phpinfo() ausge-fhrtwird.Wichtigzuwissen:DerPHP-Befehlwirdausgefhrt,aber nicht angezeigt. Der Browser erhlt reinen HTML-Code zugeschickt.Wenn dus nicht glaubst, mache den Test: Tippe noch einmal die Adresse http://localhost/info.php. Whle nun im Browser je nach Version denBefehlSEITE|QUELLCODEANZEIGEN,ANSICHT|QUELLTEXTbzw.SEITENQUELL-TEXT ANZEIGEN. Du wirst keine einzige Zeile PHP finden! Was du siehst, ist der HTML-Quellcode, der durch die phpinfo() entstanden ist! Noch ein Test: Funktioniert phpMyAdmin? HattestduaufderursprnglichenXAMPP-BegrungsseitedenPunkt TOOLSentdeckt?DortstecktauchphpMyAdmin,unserDatenbankverwal-tungsprogramm.Wirbraucheneszwarerstsptertrotzdemsolltestdu jetzt schon testen, ob der Zugriff funktioniert! Ich empfehle dir, dieses Tool nicht ber den Link, sondern stets direkt aufzurufen. Dazu tippst du in die Adresse-Zeile des Browsers: http://localhost/phpmyadmin NormalerweisestartetphpMyAdminohneKommentar.Beidirerscheint eine Dialogbox zur Eingabe von Benutzernamen und Passwort? Dann tippst du als Benutzernamen einfach root, das Passwort-Feld jedoch lsst du frei. DassindbrigensdiegleichenDaten,dieduspterauchfrMySQLver-wenden wirst: root und nichts. Schlussbemerkung Viel Theorie, ich wei. Aber das war wichtig. Auerdem weit du jetzt, wo duPlatzfrdeinePHP-Homepagebekommst.UnddubiststolzerBesitzer eines eigenen lokalen Webservers. Und das ist doch schon allerhand! XAMPP gibt es brigens auch fr Mac und fr Linux. Dort ist die Vorge-hensweiseleideretwasanders.LiesdirdieentsprechendenAnleitungen aufwww.apachefriends.dedurch.DubistMacianerundkommstmit XAMPP nicht zurecht? Dann solltest du das schon erwhnte MAMP aus-probieren. Dieses Tool bekommst du unter www.mamp.info. 87Zusammenfassung Zusammenfassung 0Duweitjetzt,wozueinWebserverdient.HierliegendieSeiten.Der Betrachter kann sie ber Eintippen der entsprechenden Webadresse an-fordern. Diese Anforderung heit HTTP-Request. 0DukennsteinigeDienstleistermitPHP/MySQL-Untersttzung.Du kennstz. B.MultiMania(vormalsTripodbeiLycos),einenwerbefinan-zierten Anbieter einer kostenlosen PHP/MySQL-Homepage. 0Du weit, wie das beste Webserver-Programm heit Apache Webser-ver. Es ist ein frei verfgbares Programm. 0Wir haben den Apachen selber auf unserem Rechner eingerichtet. Dabei halfunseinInstallations-ToolnamensXAMPP.AngenehmerNebenef-fekt:JetztlaufenauchPHPundMySQLganzautomatischaufdeinem heimischen Rechner. 0Du weit, wie du dein eigenes Web aufrufst. Tippe http://localhost in die Adresse-Zeile des Browser. Drcke [Enter]. 0DuhastamBeispielderFunktionphpinfo()herausgefunden,dass einePHP-DateinurbeimAufrufberdenWebserverrichtigangezeigt wird.Grund:PHPwirdvomWebserverausgefhrt.DerBrowserbe-kommt jedoch reinen HTML-Code zugeschickt. Ein paar Fragen 1.KannstdubeiAnbieternwieT-OnlineoderAOLdeineHomepagemit PHP/MySQL installieren? 2.WieheitdasProgramm,welchesdirdenApache-Webserver,PHP, MySQLundnochvielmehraufdeinemheimischenComputereinrich-tet? 3.Unter welchem Pfad legst du deine PHP-Dateien ab, wenn du den Apa-che-Webserver mit XAMPP installierst hast? 4.Welche Endung hat eine PHP-Datei? 5.Wozu brauchst du einen eigenen Webserver? 88 Installiere deinen eigenen Webserver! Kapitel 2 und eine Aufgabe DieseAufgabewendetsichanWindows-Nutzer,die mitPSPadarbeiten.Unddamitesnichtsoschwer wird, beginne ich mit einem Trick. DumchtestnochschnellereinHTML-GrundgerstinPSPadeinfgen? Klicke auf den Pfeil rechts neben der NEU-Schaltflche (Sie heit eigent-lichNEUEDATEIERSTELLEN)undwhleHTML.OderwhleDATEI|NEUund bleibeimRegisterLeereDateierstellen.DoppelklickeaufHTML.Auch jetzt wird ein HTML-Dokument im Standard 4.01 Transitional eingefgt sogar mit verkrzter DTD. (Allerdings ohne lang="de" und utf-8.)Und nun kommt endlich deine Aufgabe: Finde heraus, welche Vorlage sich dahinterverbirgt.PassedieseVorlageandeineWnschean.Sorgealso dafr,dassunserperfektesHTML-GrundgerstvonSeite32eingebunden wird.MeinetwegenmitverkrzterDTDundgerneauchohneEinrckung der Zeilen. (Damit die Einrckung von PHP besser zur Geltung kommt.) Aber bitte dafr wieder mit CSS-Link von Seite 50. 89 3 Hallo echo Hallo Welt DiemhevollenVorarbeitensindgeschafft!DerWebserverluft.Hchste Zeit, mit dem Programmieren richtig loszulegen. In diesem Kapitel lernst du: $wie du mit PHP Daten ausgibst $wie du mit Variablen arbeitest, den variablen Platzhaltern $wie du Zeilenumbrche setzt $wie du Sonderzeichen maskierst $wie du Fehler erkennst und vermeidest 90 Hallo echo Hallo Welt Kapitel 3Daten ausgeben mit echo Gleich zu Anfang stelle ich die wichtigste Sprachanweisung von PHP vor echo.Undichversprechedir,esisteineAnweisungmitNachhall.Doch vorherklrenwir,wiePHP-Dokumenteberhauptaufgebautsindundwo du die PHP-Anweisungen notierst. Wie sind PHP-Dokumente aufgebaut? Die PHP-Notation ist unkompliziert. Was musst du wissen? Nicht viel! PHP-DokumentesindeigentlichnichtsweiteralsHTML-Dokumente.Sie besitzen die Endung .php. Sie enthalten zustzlich Abschnitte mit PHP-Code. Diese PHP-Abschnitte notierst du ganz einfach irgendwo innerhalb des HTML-Quelltexts. Wo, ist im Prinzip fast egal. Hauptsache du machst deutlich, dass es sich um einen PHP-Abschnitt handelt. Wie kennzeichne ich meinen PHP-Code? Ganz einfach. Zu Beginn des PHP-Teils notierst du Folgendes: Das wars schon. Das ist die Form, die ich dir empfehle.Du knntest aber auch schreiben: wobeidudanndieKurzformgewhlthttest.(Ichzeigeesdirdeshalb, damitdudichnichtwunderst,wenndirdieseSchreibweisebeianderen Skriptenbegegnet.)WirbleibenbeiderLangform,dasiezu100%dem Standardentspricht.WarumistdieKennzeichnungdesPHP-Abschnitts eigentlich so wichtig?91Daten ausgeben mit echo ErstdurchdieseKennzeichnungweiderWebserver,dassessichum PHP-Abschnitte handelt. Denn diese Abschnitte werden nicht einfach so andenBrowsergeschickt.Siewerdenvorherinterpretiert,ausgefhrt. Vergissnicht:DerBenutzerbekommtnureineHTML-SeitemitHTML-Anweisungen zugeschickt. Den PHP-Code bekommt er nie zu Gesicht! Hallo Welt dein erstes Skript Unter Programmierern ist es eine hbsche Tradition, die Welt am Anfang miteinemkrftigen Hallozubegren.Schreibeein Skript,welchesden TextHalloWeltausgibt.DasDokumentsollhallo.phpheienundin unserem htdocs-Ordner unter C:\xampp abgelegt werden. >ErzeugemitdeinembevorzugtenCode-Editor(PSPad,AptanaStudio usw.)eineneue,leereHTML-Datei.InPSPadwhlstduDATEI|NEU, gehst insRegisterNeueDateiausVorlageerstellen unddoppelklickst auf die Vorlage HTML 4.01 Transitional. (Falls du die Aufgabe von Sei-te 88 gelst hast, gibt es auch einen schnelleren Weg.) >NunerscheintdasschonbekannteGrundgersteinerHTML-Datei. Bereite zwischen einen PHP-Bereich vor. Kleide die PHP-Tagsauerdemdurchein.Damitsorgstdudafr,dass derTextinnerhalbdesobligatorischenHTML-Blockelementsnotiert wird. Der Bereich innerhalb von sieht dann so aus: >Notiere zwischen den PHP-Tags jetzt folgende PHP-Zeile: echo "Hallo Welt!"; >Nichtvergessen:SpeicheredeinDokument.WhledenNamen hallo.php. Denke an den korrekten Speicherpfad: xampp/htdocs! PSPad bietet dir beim Speichern den Dateityp HTMLDocument an. Doch wir brauchen PHP. Stelle daher im Listenfeld bei Dateityp vorher Alle Da-teien (*.*) ein. Notiere dann den Dateinamen im Dateiname-Feld. 92 Hallo echo Hallo Welt Kapitel 3DieSprachanweisungechosorgtdafr,dassdieentsprechendenDaten ausgegeben werden. Die auszugebenden Daten notierst du innerhalb von Gnsefchen. Die Zeile wird am Ende durch ein Semikolon abgeschlos-sen. Quelltext fr die hallo.php SosiehtdasgesamteBeispielaus.IchhabedenTitelinderviertenZeile angepasstundauerdemeinebeschreibendeberschrifteingefgt.Aber Hallo der eigentliche PHP-Teil ist nur ganz kurz: Hallo-Welt-Skript Hallo-Welt-Skript Du mchtest auch mit einer externen CSS-Datei arbeiten? Damit die sechs-teZeileimQuelltextSinnmacht?Dannvergissnicht,dassdudieDatei phpkid.cssebenfallsindenOrdnerhtdocskopierenmusst.Sonstwer-den deine Stile nicht angezeigt! Teste dein Dokument mit dem Webserver Sicherbistduneugierig,oballesfunktioniert.RufedeinDokumentim Webserver auf. Da du es direkt im Wurzelordnerhtdocs gespeichert hast, istdasganzeinfach.Tippehttp://localhost/hallo.php unddrcke auf [Enter]. Wenn alles geklappt hat, msstest du folgendes Bild sehen: 93Daten ausgeben mit echo Der PHP-Code wird interpretiert: Der Browser gibt den Hallo Welt-Text aus. Hats funktioniert? Herzlichen Glckwunsch! Huch, bei dir gibt es eine Fehlermeldung? Oder der Text wird nicht ange-zeigt? Beachte, dass die Anzeige nur funktioniert, wenn du die Seite ber den Webserver startest. Das direkte Aufrufen mit Doppelklick fhrt dazu, dassderPHP-Abschnittnichtinterpretiertwird.Kunststck,wenndu den Webserver umgehst? Weitere Fehlermglichkeiten bespreche ich ein paarSeitenweiterhintenimAbschnittFehlermeldung.Also,coolblei-ben! PSPad: Raffinierte Farbhervorhebung Mal was anderes: Ist dir eigentlich die interessante farbliche Darstellung in PSPadaufgefallen?SowohldieHTML-alsauchdiePHP-Befehlewerden durchunterschiedlicheFarbenoptischguthervorgehoben.Dafrsorgtder HTML multihighlighter eine raffinierte Farbhervorhebungsautomatik. Stelle zur Probe einmal einen anderen Highlighter ein. Dazu klickst du ein-fach auf den Text HTML multihighlighter aus der Statuszeile. Nun erscheint Der HTML Multihigh-lighter ist automatisch aktiv. Du erkennst es an der entsprechenden Anzeige in der Status-zeile. 94 Hallo echo Hallo Welt Kapitel 3 einDialogfensterundzeigtdireineAuswahlvielerandererFarbhervorhe-bungs-Module.ProbieredocheinmaldieEinstellungHTML.Sowirdnur derHTML-Codefarblichhervorgehoben.DukannstdenFokusaberauch ausschlielich auf PHP legen.DumusstdenHighlighterabernormalerweisenichtvonHandwhlen. PSPaderkenntdenDateitypautomatischanhandderEndungeinerDatei. Rufe doch einmal die phpkid.css auf und prfe, welcher Highlighter ge-whlt ist. Richtig: Cascading Style Sheets. Variablen: Mein rechter, rechter Platz ist leer DieWelthabenwirschonbegrt.Wunderbar!RichtenwirunserAugen-merk deshalb auf die nchste Umgebung: Auf Katja, Leon, Peer, Manja und aufwenauchimmer.SchmettereeinemdieserliebenMenschenebenfalls einen freundlichen Gru entgegen. Bleiben wir im Beispiel einfach bei Katja. Begre sie mit PHP! Erstelle ein neuesPHP-Dokument.Nenneeskatja.phpundlegeeswiederinden Ordnerhtdocs.AlsTitelundberschriftschlageichPersnlicheBegr-ung mit Variablen vor. Doch was sind Variablen? Was sind Variablen? VariablensindPlatzhalter!EssindSpeicherstellenimHauptspeicherdes Rechners. Stell dir eine Variable einfach als Behltnis vor. Es ist ein Behlt-nis,welchesdirfrdieDauerderProgrammausfhrungzurVerfgung steht. Was du hineinpackst, bleibt dir berlassen. Du kannst den Inhalt der Variablen beliebig ndern und erweitern. Auch den Namen des Behlters selbst kannst du frei whlen. Na ja, fast frei zumindest. Die Namen von Variablen beginnen immer mit einem Dollarzeichen. Ver-wendekeineUmlaute,Leer-oderSonderzeichen!Sowre$eimerein erlaubter Variablenname, nicht aber $meine schssel. Der Unterstrich (_) ist jedoch gestattet. Er dient oft als Ersatz fr das verbotene Leerzei-chen. So wre $dein_name eine wunderbare Variable. Selbst kurze Vari-ablenwie$ioder$kkannstduverwenden.Weiterhingilt:Gro-und Kleinschreibungwerdenunterschieden.Sosind$vornameund $VornamezweiunterschiedlicheVariablen.(DamitsolcheProblemegar nicht erst auftreten, rate ich zu genereller Kleinschreibung!) 95Variablen: Mein rechter, rechter Platz ist leer Beachte zustzlich: Einige in PHP reservierte Wrter drfen nicht als Va-riablennameverwendetwerden.DassindWrterwiewhile,if, switch, for usw. usf. Auerdem ganz wichtig: Beginne Variablennamen nie mit einer Zahl. Nicht funktionieren wird ein Name wie $68name. (In der Variablen selbst sind jedoch Ziffern gestattet.) Der Platzhalter $vorname Fr unser Katja-Beispiel habe ich mir die Variable $vorname ausgedacht. Dieser muss ich nur noch einen Wert zuweisen. Im Beispiel soll es der Na-me Katja sein. Wie mache ich das? So: $vorname = "Katja"; DieVariableselbststehtlinks.DanachfolgteinsogenannterZu-weisungsoperator.DannnotiereichdeneigentlichenWertdesVariablen-Platzhalters.Unddieserbefindetsichrechts,getreudemMottoMein rechter, rechter Platz ist leer. Warum notiere ich den Namen Katja in Gnsefchen? Weil es sich um Texthandelt.IndiesemZusammenhangsprichtmanvoneinemsoge-nannten String. Strings werden stets im Gnsefchen notiert. Bei Zah-len dagegen brauchst du keine Gnsefchen zu setzen. Klar? Der gesamte Quelltext des PHP-Bereichs sieht so aus. Denke an das Semikolon am Zeilenende. Jede Zeile wird in PHP in der Regel durch ein Semikolon abgeschlossen! Hallo Katja! So sieht mein Beispiel aus. 96 Hallo echo Hallo Welt Kapitel 3 DasBeispielfindestduaufderCDimOrdnerkapitel03.Schaueindie Datei katja1.php. Wie funktioniert das Skript? Ganzeinfach!IndererstenZeiletauchtdieVariable$vornamedaserste Mal auf. Du weist ihr gleich den Wert Katja zu. Doch warum steht Katja in Gnsefchen? Bei Katja handelt es sich um Text. Und Text entspricht dem sogenanntenDatentypString.DasmussdurchGnsefchenverdeutlicht werden, denn Strings mssen stets in Gnsefchen stehen. Neben dem Datentyp String kennt PHP noch den Datentyp Integer. Die-ser Datentyp steht fr eine normale Ganzzahl wie 5 oder 9834. Als wei-terenDatentypgibtesinPHPdenDatentypFloat(Kommazahl).Spter lernstdudenTypBooleanfrWahrheitswertewietrueoderfalse kennen. Wie du siehst, sind es alles in allem nur wenige Datentypen. Da PHPdieDatentypenautomatischerkennt,musstdudichdarumnicht weiter kmmern. (Der Fachmann sagt: Die Variablen sind nicht typisiert.) In Zeile 1 hast du die Variable also initialisiert, wie der Profi sagen wrde. Nichtvergessen:DieZeilewirddanndurcheinSemikolonabgeschlossen. NocheinmalimKlartext:WirhabenunsunsereneigenenBehlterna-mens $vorname eingerichtet und dort den Text Katja hineingetan. NunzurzweitenZeile.Hiersorgtdieecho-Anweisungnundafr,dass etwas ausgegeben wird. Das Ausgabegut steht brigens wieder in Gnse-fchen.AuchhierhandeltessichumText.Richtigerkannt:Eswirdein String ausgegeben! Nach dem Wort Hallo und einem Leerzeichen hat unse-reVariable$vornameihrengroenAuftritt.NunwirdderWertausgege-ben, der in der Variablen gespeichert ist. Dieser lautet Katja. Fazit: Im Browser erscheint der Text Hallo Katja! Ausgabe verschnern mit HTML-Tags Die Ausgabe gefllt dir noch nicht? Verschnere sie einfach! Du kannst im Zusammenhang mit echo ganz problemlos HTML-Tags einsetzen. Die Ver-sion 2 des Katja-Beispiels sieht folgendermaen aus: 97Wie Pech und Schwefel: Strings verketten Wiedusiehst,kannstduganzproblemlosHTML-TagsindeinenAusgabe-Stringeinfgen.HierhabeichzustzlichmitdemTag-Paarfr bold (fett) gearbeitet. PassedeinBeispieldementsprechendan.Speichereundaktualisieredie AnsichtimBrowser.DazudrckstdudieFunktionstaste[F5].Dasgeht natrlichnur,wenndudieSeitehttp://localhost/katja.phpnoch aufgerufen hast. Wiedu inderAbbildungsiehst,werdendieTagskorrekt ausgegeben.Zum Vergleich habe ich den Quelltext der Webseite aufgerufen. Das solltest du ruhig ebenfalls einmal probieren. Whle dazu im Men ANSICHT den Befehl QUELLTEXT. Vergewissere dich! Im Quelltext der Webseite ist tatschlich kein PHP-Codemehrenthalten.DennschlielichsorgtderWebserverdafr,dass PHPinterpretiert,ausgefhrtwird.UndderWebserverschickthaltden HTML-Code Hallo Katja! an den Browser. DasBeispielfindestduauchaufderCD,undzwarwiederimOrdner kapitel03. Der Dateiname dieser Version lautet katja2.php. Wie Pech und Schwefel: Strings verketten PHP ist einfach! Unter dem Motto Freiheit fr Kettenhunde reden wir nun berdieHundeleineinPHP.IchmeinedenVerkettungsoperatorPunkt. Doch eigentlich brauchen wir ber diesen Punkt gar nicht so viele Worte zu Der Beweis: Ansicht im Browser und im HTML-Quelltext. 98 Hallo echo Hallo Welt Kapitel 3 verlieren.DergroeVorteil:StringsundVariablenmssennichtverkettet werden. Zumindest gilt das in den meisten Fllen. Doch was ist mit Verket-ten berhaupt gemeint?UnterVerkettenverstehtmandasVerbindenvonzweiodermehrZei-chenketten.DazuwirdnormalerweiseeinsogenannterVerkettungsope-rator verwendet. Als Verkettungsoperator dient in PHP der Punkt. Schaue dir doch noch einmal unser Beispiel von eben an: DusetztdieVariableeinfachsomirnichtsdirnichtsindieZeichenkette hinein.DasspartvielSchreibarbeitundscheintfrunsganzselbstver-stndlich zu sein. Ist es auch, denn diese raffinierte Technik ist eine Spezia-litt von PHP. BeiherkmmlichenProgrammiersprachengiltjedoch:EineVariabledarf grundstzlich nicht so einfach innerhalb von Gnsefchen notiert werden. Sie muss stets ohne Gnsefchen stehen. Das knnen wir mit PHP nach-spielen.SchaudirzumVergleichdiesesvereinfachteBeispielan.Hierge-ben wir nur den Wert aus der Variablen aus: Die Variable selber wurde dank der Gnsefchen schon in der ersten Zeile alsZeichenkettegekennzeichnet.Esistalsovlligberflssig,inder zweiten Zeile noch Gnsefchen aufzuschreiben. Strings und Variablen verketten? Meist unntig! EineVariablewirdnormalerweisenichtinGnsefchengesetzt.DerRest jedochmussalsZeichenkettegekennzeichnetwerden.UmVariableund umgebendeZeichenkettenzuverbinden,bedientmansichinherkmmli-chen Programmiersprachen der Technik des Verkettens. 99Wie Pech und Schwefel: Strings verketten Warum? In diesen Sprachen darf die Variable nicht einfach Teil des Strings sein. Sie muss mit dem String verkettet werden. Was in anderen Program-miersprachen das einzig Wahre ist, geht natrlich auch in PHP. Du kannst das Beispiel von oben also auch in dieser Verkettungs-Variante aufschreiben. Hier als die Version 3 des Katja-Beispiels: Interessantist diezweite Zeile.DasErgebnisentsprichtderVersion2.Nur dieSchreibweiseistkompliziertergeworden.DieVariablewirdzuihrer linkenundrechtenjemitdemumgebendenStringverkettet.DieAusgabe jedochndertsichnicht,eserscheintweiterhinderTextHalloKatja!im Browser. Wie schon erwhnt: In PHP ist das umstndliche Verketten von Strings mit Variablen in den meisten Fllen nicht ntig. Die Variable vertrgt es, mit in das Gnsefchen-Boot genommen zu werden. Wir haben uns in diesem BeispielalsozuvielArbeitgemacht.DiesesZuvielanArbeitfindestdu zum Vergleichen unter dem Namen katja3.php auf der Buch-CD. Strings verketten manchmal gehts nicht ohne! Warumhabeich dirdiese umstndlicheVariantehierschongezeigt?Nun, inmanchenFllenkommstduumdasVerkettennichtdrumherum!Zum BeispielbeiFunktionen.OderbeidensogenanntenFeldvariablen,denAr-rays.Einverstanden,dieArrayskennstdunochnicht.Dasverschiebenwir alsoaufspter.DochmiteinerFunktionknnenwirunsandieserStelle schon beschftigen. Nixverstehen?NehmenwireinBeispiel!Angenommen,dumchtestden markigenSatz:HalloKatja,willkommenin2010!ausgeben.Weiterhin wnschst du, dass das Jahr automatisch erzeugt wird. (Wenn du das Buch in2011oder2012liest,sollnatrlichauch2011bzw.2012ausgegeben werden.)Wiegehtdas?MiteinerFunktion!Dunimmsteinfacheineent-sprechende Funktion mit dem passenden Argument. 100 Hallo echo Hallo Welt Kapitel 3ZumAusgebenderaktuellenJahreszahldientdieFunktiondate("Y") oder auch date('Y'). Um genauer zu sein: Es ist eine Funktion mit Ar-gument.DieFunktionselbstlautetdabeidate().DasArgumentist hierbei "Y". Und nun noch ein paar Worte zu den Gnsefchen: Ob du diedoppeltenoderdieeinfachenGnsefchenwhlst,isteigentlich egal.DaduaberGnsefchennichteinfachineinanderverschachteln darfst, musst du in manchen Fllen die Variante mit den einfachen Gn-sefchen whlen. Entscheide also von Fall zu Fall. Schreibe die entsprechende Zeile also folgendermaen: echo "Hallo $vorname, willkommen in " . date("Y") . "!"; HierhabenwirmitHilfederVerkettungdafrgesorgt,dassdieFunktion funktioniert.DasJahrwirdkorrektberechnet.(Vergleiche,wenndu magst, mit dem Vorbild-Beispiel katja4.php auf der CD.) AchtebeimVerkettenunbedingtdarauf,dassLeerzeichenmitberck-sichtigt werden mssen. So musst du im Beispiel nach dem Wort in un-bedingt ein Leerzeichen setzen, bevor du das schlieende doppelte Gn-sefchen setzt. Da das Ausrufungszeichen jedoch direkt hinter der Jah-reszahl notiert werden soll, ist dort kein Leerzeichen ntig. Wrdest du auf die Verkettung verzichten, wre das Ergebnis grausam. Bei der Variante mit doppelten Gnsefchen date("Y") wrde es Fehlermel-dungenhageln.Warum?Weilduversuchthast,Gnsefchenineinander zu verschachteln. Das solltest du dir also nicht antun. AberaucheineVernderungvondate("Y")indate('Y')fhrtnicht zum gewnschten Ergebnis. Zugegeben, das Gnsefchen-Problem haben wir damit auf raffinierte Art gelst. Folgender Quellcode echo "Hallo $vorname, willkommen in date('Y')!"; Die Jahreszahl wird durch die Funktion date("Y") erzeugt. 101Kleine Zeilenumbruchkunde fhrt jedoch zu dieser Anzeige: Die Funktion wird nicht ausgefhrt, sondern im Klartext angezeigt. Wasistpassiert?StattdieFunktionauszufhren,zeigtsiederWebserver imKlartextan.Kunststck,dieFunktionwurdealsStringbehandelt,als einfacheZeichenfolge.UnddasistnatrlichQuatschmitSoe,dennso kann sie nicht funktionieren. Kleine Zeilenumbruchkunde KennstdudenBreakdance?Oderdasberhmt-berchtigteenglische Breakfast?AlleshatirgendwiemitBrechenzutun.BeimBreakdance brichtmansichwomglichdieKnochen,beimenglischenBreakfast nein, lassen wir das jetzt. Mit
einen HTML-Zeilenumbruch erzeugen Ich wollte eigentlich auf den Break hinaus, auf den Umbruch. Ich zeige dir, wie du problemlos einen Zeilenumbruch (
) in dein Dokument zauberst.DafrerweiternwireinfachmalunserKatja-Beispiel.Ichgreifedafrauf einefrhereFassungzurck,aufunsereVersion2:Hiernocheinmalder PHP-Teil: Und jetzt ergnzen wir eine zweite echo-Zeile! Damit die neue Zeile auch wirklichaufdieneueZeilerutscht,fgeichzustzlicheinenHTML-Umbruch ein. Dafr sorgt das Zeichen
. 102 Hallo echo Hallo Welt Kapitel 3 ImBrowsersiehtdasGanzesoaus,zustzlichhabeichberdenBefehl SEITE|QUELLTEXTANZEIGEN(InternetExplorer)bzw.ANSICHT|SEITENQUELLTEXT ANZEIGEN (Firefox) gleich den HTML-Quelltext aufgerufen. BisherhabenwirnureinenUmbruchimBrowsererzeugt.ImHintergrund findetjedochkeinZeilenumbruchstatt.DiesesBeispielkannstduunter dem Namen katja-br.php von der CD abrufen. Umbruch im Editor: Der Befehl \n wie new line Wie wre es zustzlich noch mit einem Umbruch im Editor? Zugegeben, bei zweiZeilenistdasvielleichtnichtsowichtig.Dochwennduhufigermit echoarbeitest,entstehtirgendwanneineEndlos-ZeileimEditor.Wenn duhinter denKulisseneinen Zeilenumbruchwnschst,verwendest duden PHP-Befehl new line. Das entsprechende Zeichen heit: \n VordemnwirdlediglicheinBackslashnotiert,einrckwrtsgelehnter Schrgstrich. Das n selbst steht als Abkrzung fr new line. Und so sieht das renovierte Beispiel aus, ich habe gleich zweimal mit \n gearbeitet: Im Quelltext siehst du zwar das Tag
, aber keinen Zeilenumbruch.103Maskenball: Das Escape-Zeichen \ BeimAufrufimBrowserwirstdukeinenUnterschiedzurvorherigenVari-ante feststellen. Nur der Blick in den Quelltext offenbart den kleinen, aber feinen Unterschied: Vergleiche mit der Datei katja-nl.php von der CD. Maskenball: Das Escape-Zeichen \ MitdemBackslashhateseinebesondereBewandtnis.Ebenhabeichdir diesenschiefenKollegenimZusammenhangmitdemZeilenumbruch vorgestellt.Mit\nwirdeineneueZeileimEditorerzeugt,duerinnerst dich.IndiesemFallwirdunserStrich-KumpelalsozueinemSteuerbefehlfr die Anzeige des Quelltextes. Die wichtigsten Umbruch-Steuerbefehle Es gibt brigens noch mehr solcher interessanten Steuerbefehle. Die wich-tigsten davon stelle ich dir in dieser Tabelle vor: \n\r\t erzeugt neue Zeile erzeugt return (neuen Absatz) erzeugt Tabulatorschritt (Sprung) Gut, damit haben wir die eine Bedeutung geklrt. Doch hast du schon ein-maldarbernachgedacht,wasdaskomischeZeichen\wohlsonstnoch bedeuten mag? Mit \n erzeugst du die Zeilenumbrche auch im Quelltext.104 Hallo echo Hallo Welt Kapitel 3 Backslash als Escape-Zeichen Dieser Backslash (\) wird auch als Escape-Zeichen bezeichnet. Denn nor-malerweisedienterzumMaskierenbestimmterSonderzeichen,diedu sonst nicht so einfach ausgeben darfst. So darfst du z. B. Gnsefchen nicht einfach im Klartext in dein Skript hineinschreiben.Gnsefchensignalisierenschlielich,dasseinString beginnt bzw. endet. DochwennduunbedingtdieGnsefchenbentigst?Vielleicht,weildu einePassageinAnfhrungszeichensetzenwillst?DieeineMglichkeit lautet: Ersetze die Gnsefchen durch einfache Gedankenstriche. DieandereLsung:MaskieredieGnsefchendurchdasEscape-Zeichen. Das Ergebnis im Browser sieht dann so aus: Vergleiche mit der Datei escape.php auf der Buch-CD. Du musst auch das Dollar-Zeichen ($) oder den Backslash (\) maskieren, fallsdudieseZeichenperechoalsHTMLausgebenwillst.Dennauch diese Zeichen haben normalerweise eine Sonderbedeutung. Nach dem Escapen werden auch Gnsef-chen korrekt angezeigt. 105Keinen Durchblick? Kommentare setzen! Keinen Durchblick? Kommentare setzen! SteigstdunochdurchdeinenQuelltextdurch?Klardoch!Beizweioder drei Zeilen ist das alles noch kein Problem! Dochwiesieht das beiumfangreichenProjekten aus?Weit dunachWo-chenimmernochgenau,wasdiegenialeZeile87macht?Undwozudie schlieendegeschweifteKlammer in Zeile145dient? Der Mensch vergisst (und auch Buffi-Hunde haben nicht gerade das beste Gedchtnis.) Gewhnedirdeshalbfrhzeitigan,mitKommentarenzuarbeiten!Das sind Bereiche, die nur von dir gesehen werden, aber auf den Programm-ablauf keinen Einfluss haben. Kommentare helfen dir, den PHP-Quellcode zu erklren. Einzeilige Kommentare WillstduschnellmaleineneinzeiligenKommentarsetzen,verwendestdu den Doppelslash //: // Das ist ein einzeiliger Kommentar DukannstdiesenKommentarauchdirektandasEndeeinerZeilesetzen, z. B. folgendermaen: $vorname = "Katja"; // Variable $vorname initialisieren Kommentare ber mehrere Zeilen ziehen WenndudagegenganzeRomaneschreibenmchtest,bietetdirPHP auchdafreineMglichkeit.FassedeinemehrzeiligenKommentarezwi-schen den Zeichen /* und */ zusammen: /* Das ist ein Kommentar, der sich im Beispiel gleich ber mehrere Zeilen erstreckt und Platz im Buch verschwendet */ 106 Hallo echo Hallo Welt Kapitel 3Also ich habe es mir inzwischen angewhnt, ausgiebig mit Kommentaren zu arbeiten. Ich kann dir diese Vorgehensweise nur empfehlen. Ein ande-rerTrickbestehtdarin,deinSkripteinfachdurchLeerzeilenzugliedern. Tipperuhigauf[Enter],umvorundnacheinerwichtigenZeileeine Leerzeilezuerzeugen.Daserhhtdiebersichtenorm.DerPro-grammablauf wird dadurch jedoch nicht gestrt. Fehlermeldung? Cool bleiben! Es ist zum Auswachsen! Du tippst deinen Code und ldst das Dokument in den Webserver? Eine Fehlermeldung taucht auf. Du korrigierst, ldst erneut derFehlerbleibt.Achja,dasSpeichern.Duhattestvergessen,vordem Aktualisierenzuspeichern.NeuladenundwassehendeinevomBild-schirmflimmern beranstrengten uglein jetzt? Eine neue Fehlermeldung! EsistmanchmalfastzumAuswachsenundesgibtMomente,dawrden HundBuffiundBuchautorHankedenPCmitsamtMonitoramliebsten gemeinsamausdemFensterwerfen.Dochhalt!Coolbleiben,lautetdie Devise. Hier ein paar Tipps, wie du Fehler vermeiden kannst. Semikolon ; am Zeilenende vergessen? Vergissnicht,dasseineProgrammier-ZeileamEndemiteinemSemikolon abgeschlossenwerdenmuss.DasvergesseneSemikolonisteinerderhu-figstenFehler.PraktischalleZeilenmssenmiteinemSemikolonabge-schlossenwerden.(NurinAusnahmefllenlsstdudasSemikolonweg. Aber darauf kommen wir noch zu sprechen!) SchaudirdieAbbildungan.DasGemeineanderGeschichte:DieFehler-meldung beziehtsichnichtetwa auf dieZeile,in derdas Semikolon fehlt. Es wird die nchste Zeile (hier Zeile 14) moniert. Klar, denn da du das Semi-kolon vergessen hast, wei der PHP-Interpreter nicht, dass die Zeile schon zu Ende war. Grausam: Schon ein vergessenes Semikolon fhrt zu einer Fehlermeldung.107Fehlermeldung? Cool bleiben! Variablen korrekt benannt? Ein anderer typischer Fehler schleicht sich immer wieder bei den Variablen ein. Hast du dem Variablennamen auch wirklich ein Dollarzeichen vorange-stellt? Wenn ich Dollarzeichen sage, meine ich auch Dollarzeichen. Mir passiert es gelegentlich, dass ich eine Variable statt $vorname als vorname schreibe. WasichhierimgutenGlaubenrichtiggemachtzuhabenglaubte,istna-trlicheinFehler.HastdudieGro-undKleinschreibungbeiVariablen beachtet? Wenn du die Variable mit $Vorname initialisierst und versuchst, mit $vorname darauf zuzugreifen, kann das einfach nicht gelingen. VariablendrfenauerdemnichtmiteinerZahlbeginnen,eineBezeich-nung $68vorname wrde ebenfalls zu einer Fehlermeldung fhren. Gnsefchen richtig gesetzt? Ein anderertypischerFehlerist dasVergesseneinesGnsefchens.Wenn du statt $vorname = "Katja"; einfach schreibst $vorname = "Katja; gibt es auf jeden Fall Probleme. Jedes einschaltende Gnsefchen ben-tigt auch ein Ausschalt-Pendant. Falsche Klammersetzung? Apropos Ein- und Ausschalten. ImVerlauf desBucheswirst dumit Klam-mer-Blckenarbeiten.NutzedieschonvonCSSbekanntengeschweiften Klammern{ },ummehrereZeilenzueinemBlockzusammenzufassen. Bei den sogenannten Fallunterscheidungen oder den Schleifen zeige ich dir dieses Prinzip spter noch ganz genau. Soviel schon vorweg: Auch das ver-sehentlicheVergesseneinerffnendenoderschlieendenKlammerfhrt natrlich zu Fehlermeldungen. Verschreiber bei den Variablennamen gehren ebenfallszu den hufigenFehlern. 108 Hallo echo Hallo Welt Kapitel 3 Problemegibtesvorallemdann,wenndumehrereKlammern-Blcke ineinanderverschachtelnmusst,undnichtmehrdurchblickst,wowelche Klammernungeschlossenwerdensoll.AuchhierschonandieserStelle meinTipp:Kommentaresetzen!Notiere,woduwelcheKlammerffnest und wieder schliet. BeidirwirdderPHP-Codeberhauptnichtausgefhrt?NurderHTML-Teil der Seite erscheint? Hast du denn die Seite ber den Webserver auf-gerufen? Also z. B. ber http://localhost/katja.php? Das einfache Doppelklicken auf den Eintrag funktioniert nicht. Vergiss nicht, dass PHP erstdurchdenWebservergezogenwerdenmuss:BeiPHPhandeltes sich schlielich um Server-Programmierung! Schlussbemerkung Was fr ein Kapitel! Du kannst nun programmieren. Na gut, ein wenig zu-mindestschon.DukennstVariablen,weit,wieduTextausgibstund kmpfst (hoffentlich erfolgreich) mit einer Vielzahl von Fehlern. Zusammenfassung 0Duweit,dassPHP-DokumenteHTML-DokumentemitderEndung .php sind. Du weit, dass PHP-Bereiche von umschlos-sen werden. 0DukennstdieSprachanweisungechozurAusgabevonDaten.Setze denauszugebendenStringinGnsefchen,schlieedieZeiledurch ein Semikolon ab: echo "Hallo Welt!"; 0DukennstdasKonzeptderVariablen,dervariablenPlatzhalter.Du mchtesteineVariableinitialisieren?NotieredieVariablelinks,den Wertrechts.SetzedazwischendasGleichheitszeichen,hierZuwei-sungsoperatorgenannt:$vorname = "Katja"; (DieLeerzeichenvor und nach dem Istgleichzeichen haben lediglich eine optische Funktion.) 0Du weit, dass du bei der Ausgabe mit echo selbst mit HMTL-Tags ar-beitenkannst.NotiereStringsundVariableneinfachinnerhalbeines Gnsefchen-Paars.DubentigstkeinenVerkettungsoperator,wenn dumehrere Elementezueinem String zusammensetzenmchtest. Eine Zeile wie echo "Hallo $vorname!"; ist fr PHP kein Pro-blem. 109Ein paar Fragen 0InwenigenFllenmusstdudochdenVerkettungsoperatorPunktver-wenden,beispielsweisebeiderRckgabevonWertenausFunktionen. DuhastdenVerkettungsoperatorimZusammenhangmitderFunktion date() kennengelernt. 0DukennstdenSteuerbefehl\n,mitdemmaneinenZeilenumbruch auchimEditorfenstererzeugt.Duweit,dassmanmit\ sonstnicht darstellbareSonderzeichenwie"oder$maskieren(escapen)kann: Schreibe z. B. \" bzw. \$ 0Du kennst meine Empfehlung zum Setzen von Kommentaren. Einzeilige Kommentare notierst du hinter //, mehrzeilige Kommentare kleidest du in die Zeichen /* und */ ein. 0Wir haben besprochen, woher viele Fehler herrhren. Vergiss keinesfalls das Semikolon am Zeilenende oder das schlieende Gnsefchen. Ach-te stets auf die korrekte Schreibweise der Variablen. Ein paar Fragen 1.Wie nennt man das Gleichheitszeichen zwischen Namen und Wert einer Variablen? 2.Nenne drei Datentypen fr Variablen in PHP! 3.Mit welchem Steuerbefehl erzeugst du eine neue Zeile im Editor? und ein paar Aufgaben 1.Schreibe ein PHP-Dokument, welches den Satz PHP macht Spa! aus-gibt. Nenne es fun.php. 2.WieheitdeinbesterKumpel?Speichereihren/seinenvollstndigen Namen in zwei Variablen. Nenne die erste Variable $vorname, die zwei-te $nachname. Gib den Namen mit PHP aus, indem du diese beiden Zei-chenkettengemeinsamausgibst.SpeicheredasDokumentunterdem Namen kumpel.php. 3.Fge in die Datei kumpel.php einen Kommentar ein, der dir jede Zeile erklrt. 111 4 Spa mit Datum und Uhrzeit Timeismoney,ZeitistGeld!SolautetdasgnadenloseMottovielerEr-wachsener.IchhabemirfrdiesesKapiteleinenungleichbesserenWahl-spruch ausgedacht. Er lautet: Time is fun, Zeit macht Spa. In diesem Sinne strzen wir uns nun ins Abenteuer Zeit. In diesem Kapitel lernst du: $wie du mit den entsprechenden Funktionen Zeit und Datum ausgibst $wiedumitif-else-KontrollstruktureneinetageszeitabhngigeBegr-ung programmierst $wiedumitsogenanntenFeldvariablen(Arrays)dieWochentageaus-gibst $wie du mit Arrays in der Kurzform umgehst $wie du Monatsnamen in sogenannten assoziativen Arrays speicherst

112 Spa mit Datum und Uhrzeit Kapitel 4Immer up to date Bistduuptodate?Ichbinesnicht!WennmicheinernachdemDatum fragt, zucke ich meist mit der Schulter. Wozu gibt es denn Computer? Fra-gen wir doch einmal den Webserver, welches Datum wir gerade haben! Bei den nun zu besprechenden Funktionen wird stets Datum und Uhrzeit desWebserverszurckgegeben.DuarbeitestamheimischenPC?Dann sind Datum und Uhrzeit natrlich identisch mit den Angaben deines PCs. AuchbeidenzuBeginnbesprochenenDienstleisternsollteeskeine Problemegeben.WenndeineSeitenjedochaufeinemamerikanischen Webserverliegen,handeltessichbeiderServerzeitnatrlichumdie amerikanische Zeit! Das Datum ermitteln Du mchtest Datum und Uhrzeit ermitteln? Dann brauchst du die Funktion date()! Erinnerst du dich? Wir hatten uns diese Funktion im vorigen Kapi-telkurzangeschaut,allerdingsnurimZusammenhangmitdemJahr.Der CodezumErmittelndesaktuellenJahrslautet:date("Y").AlsErgebnis bekommst du eine vierstellige Jahresanzeige wie 2008. Doch das Jahr alleine reicht mir nicht aus. Selbst der schusselige Buchautor kenntinderRegeldenrichtigenJahrgang!WobleibendieMonate,die Tage?Dieholenwirunsschnelldazu!FgederFunktioneinfachweitere Schalter hinzu. Angenommen,dumchtestdasDatumimFormat1.8.08ausgeben.Also den Tag und den Monat ohne fhrende Null und das Jahr mit zwei Stellen. Dann schreibst du z. B. echo date("j.n.y"); WichtigsinddieBuchstabenj,nundy.DiePunktedienenlediglichzum Gestalten. RanandiePraxis,probieredasdochgleicheinmalaus!Erstelleeineneue PHP-Datei, ich schlage den Namen datum1.php vor. W