PHP 5 leicht & verständlich - Homepages für Einsteiger - Knowware ...
PHP 5 leicht & verständlich - Homepages für Einsteiger - Knowware ...
PHP 5 leicht & verständlich - Homepages für Einsteiger - Knowware ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2<br />
KnowWare<br />
<strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong><br />
Aktualisierte Neubearbeitung von „<strong>PHP</strong> <strong>für</strong> <strong>Einsteiger</strong>“ (Extra 12)<br />
Johann-Christian Hanke, www.jchanke.de<br />
ISBN 87-91364-63-9, 1. Auflage: 2005-10<br />
© Copyright 2005 by KnowWare Aps<br />
Cover: Sylvio Droigk/JCH, Fachlektorat & Schlussredaktion: Manfred Buchholz<br />
Satz und Layout: Johann-Christian Hanke, Coverfoto: JCH<br />
verlag@knowware.de – lektorat@knowware.de<br />
Printer: OTM Denmark, Binder: Gramo Denmark, Published by KnowWare<br />
Bestellung <strong>für</strong> Endverbraucher und<br />
Vertrieb <strong>für</strong> den Buchhandel<br />
KnowWare-Vertrieb<br />
Postfach 3920<br />
D-49029 Osnabrück<br />
Tel.: +49 (0)541 33145-20<br />
Fax: +49 (0)541 33145-33<br />
bestellung@knowware.de<br />
www.knowware.de<br />
Vertrieb <strong>für</strong> den Zeitschriftenhandel:<br />
IPV, Postfach 10 32 46,<br />
D-20022 Hamburg<br />
Tel.: +49 (0) 40 23711-0<br />
Fax: +49 (0) 40 23711-215<br />
www.ipv-online.de<br />
Worum es geht<br />
Hinter KnowWare steht der Gedanke, Wissen<br />
<strong>leicht</strong> <strong>verständlich</strong> und preisgünstig zu<br />
vermitteln.<br />
Wo und wann sind die Hefte<br />
erhältlich?<br />
Neue Hefte sind im Allgemeinen zwei Monate<br />
im Handel: und zwar bei Kiosken, im<br />
Bahnhofsbuchhandel und im Buchhandel –<br />
bei vielen Verkaufsstellen sowie im Buchhandel<br />
auch länger. Alle beim Verlag vorrätigen<br />
Titel kannst du immer bestellen!<br />
Bestellung<br />
� bei deinem KnowWare-Händler oder direkt<br />
bei uns – bitte Bestellformular am<br />
Ende des Heftes ausfüllen!<br />
� beim KnowWare-Vertrieb (siehe oben)<br />
www.knowware.de<br />
� Shop- und Servicebereich – du kannst<br />
jeden der 120 Titel sofort bestellen!<br />
� komplettes Inhaltsverzeichnis<br />
� Probeseiten aller Hefte im Originallayout<br />
(als PDF) – jeweils bis zu 20 Seiten!<br />
� ausverkaufte Titel: In vielen Fällen ist<br />
sogar das gesamte Heft als PDF kostenlos<br />
herunterladbar<br />
� geplante Titel und Vorbestellung<br />
� kostenloser Newsletter: Informationen<br />
über Neuerscheinungen<br />
� interne Suchfunktion: Du findest<br />
schnell, was du suchst<br />
� Autoren gesucht: Infos <strong>für</strong> die Bewerbung!<br />
� Serviceseiten zu den Heften, hauptsächlich<br />
von den Autoren selbst<br />
� Tipps und Tricks<br />
Johann-Christian Hanke<br />
wurde 1968 geboren und ist<br />
Literaturwissenschaftler. Seit<br />
1997 arbeitet er als freier Autor<br />
<strong>für</strong> große Verlage. Für<br />
KnowWare hat er 35 Titel<br />
verfasst, von denen viele zu<br />
Bestsellern wurden. Johann-Christian ist<br />
kein klassischer Computer-Experte, sondern<br />
Autodidakt. Er schreibt stets aus<br />
der Sicht des Lernenden: <strong>verständlich</strong><br />
und humorvoll statt technisch und trocken!<br />
www.jchanke.de<br />
www.knowware.de<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Inhaltsverzeichnis:<br />
<strong>PHP</strong> ... Eine Seite Vorbemerkungen........5<br />
Lektion 1: Shootingstar <strong>PHP</strong> – Erste<br />
Tipps und Infos..........................................6<br />
Wer hat <strong>PHP</strong> erfunden? .................................6<br />
Was ist <strong>PHP</strong>? .................................................6<br />
Wie funktioniert <strong>PHP</strong>? ....................................6<br />
Was kostet <strong>PHP</strong>? ...........................................7<br />
<strong>PHP</strong>-Unterstützung beim Hoster....................7<br />
Ist <strong>PHP</strong> einfach?.............................................7<br />
Was kann <strong>PHP</strong>? .............................................7<br />
<strong>PHP</strong>-Nachschlagewerke im Netz...................8<br />
Zur Übung: Ordner einrichten ........................9<br />
Lektion 2: Apache-Webserver und <strong>PHP</strong><br />
installieren ...............................................10<br />
Der Apache-HTTP-Server............................10<br />
XAMPP.........................................................10<br />
Die Funktion phpinfo().................................. 11<br />
Editor-Tipp: Weaverslave.............................12<br />
Lektion 3: Erste praktische Schritte mit<br />
<strong>PHP</strong>...........................................................13<br />
Hinweise zur Notation ..................................13<br />
Das erste Skript: Hallo Welt .........................13<br />
Variablen als veränderbare<br />
Speicherstellen........................................15<br />
Was sind Variablen?.....................................15<br />
Hallo Hans ... ein praktisches Beispiel!........16<br />
Der Verkettungsoperator Punkt (.) ...............17<br />
Download der Beispieldateien .....................17<br />
Break und Zeilenumbruch, was ist der<br />
Unterschied? ...........................................17<br />
HTML-Break versus <strong>PHP</strong>-new line \n..18<br />
Profiwissen: Das Escape-Zeichen \ .............19<br />
Variablentyp Array: Feldvariablen bzw.<br />
Wertelisten ...............................................20<br />
Arrays in der Langform.................................20<br />
Wochentag dynamisch ermitteln..................21<br />
Array-Elemente zählen mit count() ..............22<br />
Assoziative Arrays........................................22<br />
Gänsefüßchen-Problem? Strings verketten! 23<br />
Inhaltsverzeichnis<br />
Lektion 4: Rechnen mit <strong>PHP</strong> –<br />
Operatoren und Funktionen...................24<br />
Die Rechenoperatoren ................................ 24<br />
Beispiel Addition .......................................... 24<br />
Mehrwertsteuer aus Nettowert .................... 24<br />
Mehrwertsteuer aus Bruttowert ................... 25<br />
Datenausgabe mit oder ohne Verkettung?.. 26<br />
Die Funktion sprintf() als<br />
„Formatieranweisung“ ................................. 27<br />
ÜBUNGSTEIL A: Variablen, Funktionen,<br />
Berechnungen.....................................28<br />
Lektion 5: Formularauswertung mit<br />
HTML und <strong>PHP</strong> ........................................30<br />
Wie wertet man Formulare aus? ................. 30<br />
Erster praktischer Test................................. 31<br />
Formular auswerten .................................... 32<br />
if-else-Entscheidungsstruktur...................... 32<br />
Mann oder Frau? Entscheide dich! ............. 33<br />
Vergleichsoperatoren im Blick..................... 34<br />
Die Funktion isset() prüft Variablen ............. 35<br />
Formularauswertung in einem Dokument ... 36<br />
Weitere Änderungen im Skript .................... 37<br />
Wichtiges Formular-Know-how <strong>für</strong><br />
Fortgeschrittene .......................................... 38<br />
Formular als assoziatives Array .................. 38<br />
Gelöst: Das Gänsefuß-Problem .................. 39<br />
Funktion htmlspecialchars() ........................ 40<br />
Funktion stripslashes() ................................ 40<br />
Umbruch erhalten mit nl2br()....................... 41<br />
Lektion 6: Passwort und Co. –<br />
Kontrollstrukturen de luxe .....................42<br />
Umleitung durch header()............................ 42<br />
if und elseif .................................................. 42<br />
Die switch-Anweisung ................................. 45<br />
Unterschiede zu if und elseif ....................... 45<br />
Farbwahl ganz individuell ............................ 46<br />
Lektion 7: Das Wichtigste über Schleifen<br />
in <strong>PHP</strong> ......................................................47<br />
Die while-Schleife........................................ 47<br />
Prüfung im Fuß: do while ............................ 49<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
3
4<br />
Zählschleife mit for .......................................49<br />
Neu und supergenial: foreach <strong>für</strong> Arrays .....51<br />
ÜBUNGSTEIL B: Kontrollstrukturen,<br />
Formulare, Schleifen...........................52<br />
Inhaltsverzeichnis<br />
Lektion 8: Formularversand und<br />
Formularvalidierung................................54<br />
Die Funktion mail() .......................................54<br />
Der Mini-Mailer <strong>für</strong> jeden Tag .......................54<br />
Kurzform <strong>für</strong> Zuweisung/Verkettung.............56<br />
Erfüllt alle Wünsche: Universal-Formmailer.57<br />
Formular-Auswertung <strong>für</strong> Profis ...................58<br />
Das Skript im Überblick................................59<br />
Dynamisch neue Seite einblenden ..............60<br />
JavaScript: history-Button ............................61<br />
Exit beendet das Programm.........................61<br />
Daten an mail.php übergeben......................61<br />
Lektion 9: Zähler und Gästebuch, Arbeit<br />
mit Dateien ...............................................62<br />
Richte einen Zähler ein! ...............................62<br />
Die Funktion fgets()......................................63<br />
Ein einfaches Gästebuch .............................63<br />
Die Funktion fread() .....................................65<br />
Datum ausgeben mit date()..........................65<br />
Schalter der Funktion date() ........................66<br />
Lektion 10: Cookies: Begrüßung und<br />
Web-Umfrage ...........................................67<br />
Was sind Cookies?.......................................67<br />
Cookies setzen mit <strong>PHP</strong> ..............................68<br />
Lebensdauergarantie <strong>für</strong> Cookies................70<br />
1, 2 oder 3? Web-Umfrage mit allen<br />
Schikanen!....................................................71<br />
Die Funktionen explode() und implode()......73<br />
Grafische Auswertung in der auswertung.php 74<br />
ÜBUNGSTEIL C: Übungen zu<br />
Formularen, Dateien, Cookies............76<br />
Anhang: Schreibschutz aufheben mit<br />
chmod 666................................................77<br />
Stichwortverzeichnis ..............................78<br />
120 interessante KnowWare-Titel!<br />
KnowWare bietet dir eine riesige<br />
Auswahl an Computerheften und<br />
bringt jeden Monat neue Titel auf den Markt – zu<br />
Themen rund um den PC. Auch wenn die Titel am<br />
Zeitschriftenkiosk vergriffen sind, halten wir alle<br />
zum Bestellen bereit. Wir drucken regelmäßig<br />
nach!<br />
Insgesamt bieten wir dir 120 preiswerte Hefte auf<br />
www.knowware.de an! Sie sind allesamt sofort<br />
lieferbar! Kennst du schon unsere interessanten Titel<br />
zu Windows?<br />
� Tipps & Tricks zu Windows<br />
� Windows-Netzwerke <strong>für</strong> <strong>Einsteiger</strong><br />
Eins unserer Hauptthemen ist Office:<br />
� Open- und Starwriter <strong>für</strong> <strong>Einsteiger</strong><br />
� Excel 2000–2003 im Schnellkurs<br />
� Diagramme mit Excel<br />
� Word 2003/2002 <strong>leicht</strong> & verst.<br />
� Access 2003/2002 <strong>leicht</strong> & verst.<br />
� PowerPoint 2003 (2002/XP) <strong>für</strong><br />
<strong>Einsteiger</strong><br />
� Office 2003 <strong>für</strong> <strong>Einsteiger</strong><br />
� Word <strong>für</strong> Profis<br />
Lust auf die eigene Homepage?<br />
� <strong>Homepages</strong> <strong>für</strong> <strong>Einsteiger</strong><br />
� <strong>Homepages</strong> mit HTML und CSS<br />
� <strong>Homepages</strong> <strong>für</strong> Fortgeschrittene<br />
� Erfolg mit der Homepage<br />
� <strong>Homepages</strong> <strong>für</strong> Profis<br />
� Barrierefreies Webdesign<br />
Programmieren und Linux erklären wir dir auch:<br />
� C++ <strong>leicht</strong> & <strong>verständlich</strong><br />
� Delphi <strong>für</strong> <strong>Einsteiger</strong><br />
� <strong>PHP</strong> und MySQL auf der<br />
Homepage (2. Teil dieses Kurses!)<br />
� Umsteigen! … auf Linux<br />
� JavaScript <strong>für</strong> <strong>Einsteiger</strong><br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Vorwort<br />
<strong>PHP</strong> ... Eine Seite Vorbemerkungen<br />
Willkommen und Danke!<br />
Ganz herzlich willkommen, liebe Leserin, lieber<br />
Leser! Vielen Dank <strong>für</strong> das Vertrauen in KnowWare<br />
und danke, dass du dich (wieder) <strong>für</strong> einen (Homepage-)Titel<br />
von mir entschieden hast.<br />
Vor dir liegt die dritte Auflage des Heftes, Stand<br />
09/2005. Es ist der erste Teil des inzwischen<br />
zweiteiligen Kurses zu <strong>PHP</strong> (bzw. MySQL). :-)<br />
Was lernst du hier?<br />
In diesem Heft führe ich dich am Beispiel in die Programmiersprache<br />
<strong>PHP</strong> ein. Du erfährst<br />
� was <strong>PHP</strong> ist und wie es funktioniert<br />
� wie du den lokalen Webserver nutzt<br />
� wie du mit Variablen, Kontrollstrukturen, Fallunterscheidungen<br />
und Schleifen arbeitest<br />
� wie du einen Counter, ein Gästebuch und eine<br />
Web-Umfrage programmierst<br />
� wie du Formulare auswertest und den Inhalt per<br />
Formmailer verschickst<br />
� wie du einen Passwortschutz setzt<br />
� wie du Uhrzeit und Datum ermittelst und mit<br />
Cookies arbeitest<br />
In der Fortsetzung dieses Titels namens „<strong>PHP</strong> und<br />
MySQL auf der Homepage“ (2. Auflage 2005) zeige<br />
ich dir dann auch den Umgang mit Datenbanken<br />
und Datenbanktabellen. Am Beispiel einer<br />
Adressdatenbank und eines Fotogästebuchs mit<br />
Bildupload lernst du das Zusammenspiel von <strong>PHP</strong><br />
und MySQL kennen. Ich empfehle dir diesen zweiten<br />
Titel sehr, da ich dort die Installation des Apache-Webservers<br />
erkläre und viele Tipps und Tricks<br />
zum professionellen Programmieren vermittle.<br />
Das Heft ist ein <strong>PHP</strong>-Kurs!<br />
Warum dieses Heft? Ganz einfach. Je näher mein<br />
erster <strong>PHP</strong>-Kurs im April 2002 rückte (als Dozent<br />
wohlgemerkt!), desto verzweifelter suchte ich nach<br />
einem geeigneten Kursmaterial. Das <strong>Einsteiger</strong>seminar<br />
<strong>PHP</strong> 4 vom bhv-Verlag (9,95 €) schied sofort<br />
aus. Die Zielgruppe <strong>Einsteiger</strong> wurde leider<br />
vollkommen verfehlt. Auch die zwei Dutzend anderen<br />
Titel waren <strong>für</strong> meine Kurszwecke damals<br />
ungeeignet – der didaktische Ansatz fehlte.<br />
Deshalb schrieb ich das Skript selber und bot es<br />
dem KnowWare-Verlag an. Was soll ich sagen – die<br />
haben es gedruckt, und zwar im Juni 2002!<br />
Aus den Erfahrungen heraus, die ich mit diesem<br />
Heft gesammelt hatte, entstand 2003 auch mein erstes<br />
„richtiges“ <strong>PHP</strong>-Buch „<strong>PHP</strong> und MySQL <strong>für</strong><br />
Kids“. Das Buch wurde ein Erfolg und bekam gute<br />
Kritiken, u.a. im <strong>PHP</strong>-Magazin und sogar in der<br />
ix. Der Verlag bereitet gerade die dritte (!) Auflage<br />
vor. Zurzeit schreibe ich deshalb eine Fortsetzung<br />
namens „<strong>PHP</strong> und MySQL Praxisbuch <strong>für</strong> Kids“.<br />
Dort geht es um Themen wie Authentifizierung,<br />
Sessions, Objektorientierung und CMS. Mehr zu<br />
diesen Titeln erfährst du auf www.phpkid.de.<br />
Welche Vorkenntnisse?<br />
Für dieses Heft benötigst du gute HTML-Kenntnisse<br />
– du solltest HTML-Seiten schon einmal im<br />
Quellcode „gebastelt“ haben. In meinem Heft<br />
„<strong>Homepages</strong> mit HTML und CSS“ (168) oder in<br />
„<strong>Homepages</strong> <strong>für</strong> <strong>Einsteiger</strong>“ (161) hoffe ich, dir da<strong>für</strong><br />
die optimale Einführung gegeben zu haben.<br />
Außerdem setze ich natürlich voraus, dass du mit<br />
deinem Betriebssystem gut zurechtkommst. Du<br />
weißt, wie man:<br />
� den Windows-Explorer (Finder usw.) aufruft<br />
� mit Ordnern und Dateien umgeht.<br />
Außerdem erwarte ich, dass bei dir die in Windows<br />
von Hause aus leider abgeschalteten Dateiendungen<br />
eingeblendet sind!!!<br />
Wie du Dateiendungen einblendest, erkläre ich dir<br />
u.a. in den Heften zu Windows 98, 2000 bzw. XP.<br />
Hinweis: Dieser Kurs bezieht sich zwar auf Windows,<br />
da <strong>PHP</strong> aber plattformunabhängig ist, kannst<br />
du auch den Mac oder Linux einsetzen. Außerdem<br />
gilt der Kurs <strong>für</strong> <strong>PHP</strong> 4 und <strong>PHP</strong> 5 gleichermaßen!<br />
Serviceseite mit Beispieldateien<br />
Hoppla, Probleme beim Abschreiben? Das Skript<br />
will einfach nicht funktionieren? Kein Problem!<br />
Es gibt zum Glück eine Serviceseite zu diesem<br />
Heft. Auf www.knowware.de/?book=php5 stellt der<br />
Verlag alle Beispiele zum Download bereit.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
5
6<br />
Lektion 1: Shootingstar <strong>PHP</strong> – Wer hat <strong>PHP</strong> erfunden?<br />
Lektion 1: Shootingstar <strong>PHP</strong> – Erste Tipps und Infos<br />
Du sitzt gerade in der S-Bahn? Im Bus? Oder am<br />
PC? Wo immer du bist, mache es dir gemütlich!<br />
Zuerst informiere ich dich über <strong>PHP</strong> und gebe dir<br />
erste Tipps <strong>für</strong> die Einrichtung deines PCs.<br />
Außerdem verrate ich dir kurz, bei welchen Dienstleistern<br />
<strong>PHP</strong>-Unterstützung am günstigsten ist.<br />
Danach setzen wir uns gemeinsam vor einen PC<br />
und richten alles Schritt <strong>für</strong> Schritt ein.<br />
Doch zuerst ein Blick in die Vergangenheit.<br />
Wer hat <strong>PHP</strong> erfunden?<br />
Der Kanada-Däne Rasmus Lerdorf!<br />
Die Dänen sind Weltbürger: www.lerdorf.com<br />
Blenden wir zurück zum Herbst 1994. Rasmus<br />
wollte herausfinden, wie seine im Web veröffentlichte<br />
Online-Bewerbung ankommt. Kurzerhand<br />
entwickelte er einige „Server-Befehle“ mit deren<br />
Hilfe immerhin Gästebuch oder Counter realisiert<br />
werden konnten. Fertig waren die „Personal Home<br />
Page Tools“ (<strong>PHP</strong>). Doch am wichtigsten im Web<br />
sind schließlich Formulare. So verwundert es nicht,<br />
dass Lerdorf im Laufe des Jahres1995 einen Form<br />
Interpreter (FI) zur Formularauswertung „dazustrickte“.<br />
Er stellte seine Entwicklung im Netz frei zur Verfügung.<br />
Die Entwicklergemeinde begann sich <strong>für</strong><br />
<strong>PHP</strong>/FI zu interessieren und bald wurde aus <strong>PHP</strong><br />
eine ausgewachsene Teamarbeit. Inzwischen liegt<br />
<strong>PHP</strong> in der Version 5.x vor. Die Hauptentwicklung<br />
von <strong>PHP</strong> betreiben längst andere, Rasmus jedoch<br />
bleibt der geistige Vater von <strong>PHP</strong>!<br />
Heute wird <strong>PHP</strong> als Akronym <strong>für</strong> Hypertext<br />
Preprocessor verwendet, platt gesagt also als Kürzel<br />
<strong>für</strong> „Homepage-Vorschalt-Prozessor“.<br />
Schauen wir nun, was da so „vorgeschaltet“ ist.<br />
Was ist <strong>PHP</strong>?<br />
Eine Programmiersprache. Oder besser: Eine einfache<br />
Skriptsprache. Sie wird direkt in HTML-Seiten<br />
eingefügt und vom Webserver interpretiert.<br />
Da sie eigens <strong>für</strong> das Web geschrieben wurde, kann<br />
sie auch nur Dinge, die im Web nötig sind. <strong>PHP</strong><br />
schleppt keinen unnötigen Ballast mit wie konkurrierende<br />
Sprachen!<br />
Wie funktioniert <strong>PHP</strong>?<br />
<strong>PHP</strong> wird, wie eben erwähnt, vom Webserver interpretiert.<br />
Was passiert dabei genau?<br />
Der Browser schickt einen HTTP-Request an den<br />
Webserver (eine Anforderung zum Abruf der Seiten).<br />
Der Server reagiert, liest die <strong>PHP</strong>-Seite ein,<br />
führt die Skripte aus und schickt erst dann das fertig<br />
zusammengesetzte Dokument an den Browser!<br />
Da <strong>PHP</strong> vom Server ausgeführt wird, bekommt der<br />
Betrachter den <strong>PHP</strong>-Code nie zu sehen. Er erhält<br />
das fertige Ergebnis im HTML-Format!<br />
Unterschiede JavaScript – <strong>PHP</strong><br />
Kannst du evtl. schon etwas JavaScript, viel<strong>leicht</strong><br />
durch ein Studium meines Titels „<strong>Homepages</strong> <strong>für</strong><br />
Fortgeschrittene“? Dann vergleiche ruhig!<br />
JavaScript wird ebenfalls direkt im HTML-Code<br />
notiert. Allerdings ist der Code <strong>für</strong> Betrachter stets<br />
im Klartext zu sehen. Warum? Nun, JavaScript<br />
wird erst interpretiert, nachdem du die Seite vom<br />
Server abgerufen hast. JavaScript wird also vom<br />
Client ausgeführt, von deinem Browser, während du<br />
eine Seite betrachtest.<br />
Die Nachteile sind bekannt: Jeder Browsertyp hat<br />
in Bezug auf JavaScript so seine Eigenheiten und<br />
Macken und bei Deaktivierung durch „JavaScriptverachtende“<br />
Betrachter läuft gar nichts.<br />
Hier ist <strong>PHP</strong> also klar im Vorteil. Wenn es läuft,<br />
läuft es. Und zwar in jedem Browser. Hauptsache<br />
dein Dienstleister bietet einen Webserver mit <strong>PHP</strong>-<br />
Unterstützung an.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Was kostet <strong>PHP</strong>?<br />
Lektion 1: Shootingstar <strong>PHP</strong> – <strong>PHP</strong>-Unterstützung beim Hoster<br />
Nichts! <strong>PHP</strong> kostet keinen Cent! Diese Programmiersprache<br />
wird im Rahmen der Open<br />
Source-Lizenz vertrieben. Der Quellcode liegt offen<br />
und kann von jedem eingesehen werden.<br />
Das ist ein Lizenzmodell, welches ich sehr unterstütze.<br />
Open Source-Software wird nicht einfach<br />
unbemerkt „nach Hause telefonieren“ oder dich in<br />
„Big-Brother-Microsoft-Manier“ überwachen.<br />
<strong>PHP</strong> wird am häufigsten zusammen mit dem ebenfalls<br />
frei erhältlichen Apache-Webserver eingesetzt.<br />
Der „Apache“ ist der populärste Webserver im Net.<br />
Mehr dazu später.<br />
<strong>PHP</strong>-Unterstützung beim Hoster<br />
Nun gut, <strong>PHP</strong> kostet nichts. Du kannst dir also den<br />
Apache-Webserver und <strong>PHP</strong> auf deinem eigenen<br />
Rechner installieren und dich über deine tollen<br />
Skripte freuen. Und das werden wir im Verlaufe des<br />
Kurses auch tun. Doch wenn du andere an deinem<br />
„<strong>PHP</strong>-Glück“ teilhaben lassen willst, musst du einen<br />
Dienstleister finden, dessen Webserver mit<br />
<strong>PHP</strong>-Unterstützung arbeiten.<br />
Die ganz billigen Starterpakete der Massenhoster<br />
bieten keine <strong>PHP</strong>-Unterstützung.<br />
Strato<br />
Bei Strato gibt es <strong>PHP</strong> 5 ab PowerWeb A <strong>für</strong> monatliche<br />
5,99 €. Wenn du dazu noch MySQL benötigst,<br />
musst du monatlich 8,99 € anlegen. Alles<br />
ein bisschen teuer, wenn man bedenkt, dass <strong>PHP</strong><br />
dazu noch im Safe Mode läuft – also mit vielen<br />
Einschränkungen! Außerdem war die Ausführungsgeschwindigkeit<br />
in meinen Tests lausig – ich<br />
hatte zur Probe die CMS-Systeme Mambo und<br />
Typo 3 installiert. Langsamer ging es nimmer. Ich<br />
rate von diesen Angeboten daher ab.<br />
Mehr Informationen gibt es auf www.strato.de.<br />
Herausforderer 1&1 (Puretec)<br />
Die 1&1 GmbH (www.puretec.de) bietet erst ab<br />
dem Paket 1 & 1 Business <strong>für</strong> 9,99 € pro Monat<br />
(ohne Bannerwerbung 12,99 €!) <strong>PHP</strong> und<br />
MySQL-Unterstützung. Auch hier hat mich die<br />
Geschwindigkeit nicht überzeugt. Es geht schneller<br />
und billiger. Daher: keine klare Empfehlung!<br />
All-Inklusive, Domainfactory und Co.<br />
Zu den günstigeren und vor allem besseren Anbietern<br />
mit <strong>PHP</strong>/MySQL-Unterstützung gehören<br />
z. B. PS-Webhosting (www.ps-webhosting.de) mit<br />
Preisen ab 3,49 € pro Monat oder All-Inklusiv<br />
(www.all-inkl.de) ab 4,95 € pro Monat . Ideal zum<br />
Einsteigen ist auch der 1-Euro-Account unter<br />
www.1-euro-account.de, allerdings mit Einschränkungen<br />
(kein Hochladen von Dateien!).<br />
Kostenlos: Tripod und Internetworx<br />
Umsonst? Klar! Bei www.tripod.lycos.de bekommst<br />
du sogar kostenlosen Webspace mit<br />
<strong>PHP</strong>/MySQL-Unterstützung. Zum Ausprobieren<br />
genügt das, <strong>für</strong>s Business würde ich aufgrund massiver<br />
Zwangswerbung eher auf ein kostenpflichtiges<br />
Paket umsatteln.<br />
webhostliste.de: Erste Anlaufstelle bei der Providerwahl<br />
Informiere dich einfach bei www.webhostlist.de<br />
bzw. www.freewebhost.de über Angebote und<br />
Konditionen der wichtigsten Webhoster!<br />
Ist <strong>PHP</strong> einfach?<br />
Die Frage sollte besser heißen: Ist <strong>PHP</strong> einfach zu<br />
erlernen? Da sage ich sofort: Ja, sehr einfach sogar.<br />
<strong>PHP</strong> ist einfacher als JavaScript und viel, viel einfacher<br />
als Perl! So einfach wie Englisch!<br />
Meine schon mit JavaScript „gequälten“<br />
Kursteilnehmer haben gestaunt, wie schnell man<br />
zu Erfolgserlebnissen gelangt.<br />
Was kann <strong>PHP</strong>?<br />
Alles! Oder fast alles, was sich der ambitionierte<br />
Homepagebastler schon immer gewünscht hat! Du<br />
brauchst einen Zähler oder ein Gästebuch? Kein<br />
Problem. In wenigen Codezeilen bist du fertig. Du<br />
willst die Uhrzeit anzeigen oder Cookies setzen?<br />
Nichts einfacher als das.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
7
8<br />
Lektion 1: Shootingstar <strong>PHP</strong> – <strong>PHP</strong>-Nachschlagewerke im Netz<br />
Du möchtest prüfen, ob ein Formular richtig ausgefüllt<br />
wurde? Das ist wichtig! Zeige dem Benutzer<br />
alle Formulardaten noch einmal an. Erstelle ein interaktives<br />
Bestell- und Warenkorbsystem, welches<br />
dem Kunden auf Wunsch sogar eine Bestätigungs-<br />
Mail mit allen Bestelldaten schickt.<br />
Für das große KnowWare-Bestellformular auf<br />
www.knowware.de habe ich so eine <strong>PHP</strong>-Lösung<br />
programmiert. Hier werden alle Preise ausgerechnet<br />
und alle Bestelldaten vor dem Versenden noch einmal<br />
angezeigt (Warenkorbsystem). Alle Besteller<br />
erhalten eine Bestätigungs-E-Mail. Das Formular<br />
jedoch ist ein ganz gewöhnliches HTML-Formular<br />
mit JavaScript.<br />
Beliebt ist <strong>PHP</strong> jedoch vor allem wegen seiner hervorragenden<br />
Zusammenarbeit mit allen erdenklichen<br />
Datenbanksystemen. Am häufigsten kommt<br />
hierbei MySQL zum Einsatz, da dieses Datenbanksystem<br />
frei verfügbar ist.<br />
Merke: Das Dreigespann Apache – MySQL und<br />
<strong>PHP</strong> ist fast zum Synonym <strong>für</strong> datenbankgestütztes<br />
Web-Publishing geworden.<br />
Für den Anfang brauchst du SQL nicht: Du wirst<br />
sehen, dass das Meiste problemlos auch ohne läuft.<br />
Ansonsten gilt: Mehr zu MySQL erfährst du in<br />
„<strong>PHP</strong> und MySQL auf der Homepage“ bzw.<br />
„<strong>PHP</strong> und MySQL <strong>für</strong> Kids“.<br />
Abkürzungswahn hoch drei: Läuft dein Programmier-System<br />
auf einem Linux-Webserver,<br />
spricht man von LAMP (Linux - Apache - MySQL<br />
- <strong>PHP</strong>), die <strong>für</strong> uns <strong>für</strong> lokale Tests bevorzugte Variante<br />
ist WAMP (W=Windows).<br />
�<br />
<strong>PHP</strong> versus Perl<br />
Erwähnte ich vorhin Perl? Die ebenfalls noch häufig<br />
im Web eingesetzte Programmiersprache Perl ist<br />
zwar ebenfalls sehr mächtig, da<strong>für</strong> aber auch mächtig<br />
kompliziert. Schließlich gehen die Ursprünge von<br />
Perl auf eine Zeit zurück (1986), zu der vom Web<br />
noch niemand zu träumen wagte.<br />
<strong>PHP</strong> dagegen entstand knapp 10 Jahre später und<br />
wurde direkt <strong>für</strong> das Web geschrieben.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
�<br />
<strong>PHP</strong> versus ASP<br />
Aber auch ASP mit VBScript bzw. JScript ist keine<br />
wirkliche Alternative, da diese „Microsoft-Erfindung“<br />
vorrangig an den Internet Information Server<br />
von Microsoft gekoppelt ist. Dieser Webservertyp<br />
besitzt im Gegensatz zum Platzhirsch Apache<br />
nur einen kleinen Marktanteil.<br />
Ist Programmieren einfach?<br />
Diese Frage beantworte ich am besten mit: Es<br />
kommt darauf an! Wenn man schon Vorerfahrungen<br />
mitbringt, fällt das Lernen einer zweiten Programmiersprache<br />
<strong>leicht</strong>er, ähnlich wie beim Erlernen<br />
einer zweiten Fremdsprache.<br />
Der Anfang jedoch ist ziemlich kompliziert. Auch<br />
ich gebe zu, dass ich geraume Zeit gebraucht hatte,<br />
ehe ich das Konzept der Fallunterscheidungen oder<br />
Schleifen so richtig verstanden hatte. Und ich mache<br />
immer noch und immer wieder Fehler!<br />
Lass also nicht den Kopf hängen, wenn du viele<br />
Dinge nicht auf Anhieb verstehst!<br />
Ich versuche, dir vor allem am Anfang alles so einfach,<br />
ausführlich und <strong>verständlich</strong> wie möglich zu<br />
erklären. Später wird es dann jedoch leider immer<br />
komplexer.<br />
Übung macht den Meister<br />
Wie beim Sprachenlernen gelten auch bei der Programmiererei<br />
die Wahlsprüche: „Übung macht den<br />
Meister“ und „Wiederholung ist die Mutter der<br />
Porzellankiste“ (oder so ähnlich).<br />
Beschäftige dich mit <strong>PHP</strong>! Wiederhole die alten<br />
Skripte. Probiere Neues aus! Hole dir weiteres<br />
Lehrmaterial zum Thema. Stöbere Skripte im Web<br />
auf und passe sie an deine Bedürfnisse an.<br />
Vieles ist einfach nur Erfahrung. Bittere Erfahrung.<br />
<strong>PHP</strong>-Nachschlagewerke im Netz<br />
Du willst mehr wissen? Tauche ab ins Netz und<br />
„hole“ dir die umfangreichen Online-Ressourcen.<br />
Das offizielle <strong>PHP</strong> Handbuch<br />
Als super Funktions- und Befehls-Überblick empfehle<br />
ich dir auch die deutsche Übersetzung des offiziellen<br />
<strong>PHP</strong> Handbuchs auf<br />
www.php-homepage.de/manual/
Lektion 1: Shootingstar <strong>PHP</strong> – <strong>PHP</strong>-Nachschlagewerke im Netz<br />
Du möchtest dir das Dokument gleich auf den<br />
heimischen Rechner herunterladen? Surfe zu:<br />
www.php.net/download-docs.php<br />
Hier findest du dieses Handbuch sowohl als<br />
HTML-Version, als PDF-Dokument, als Version<br />
<strong>für</strong> den Palm Pilot und sogar als Windows-Hilfedatei,<br />
wobei ich mir persönlich nur die letztere<br />
heruntergeladen habe.<br />
Für alle anderen Dateien benötigst du einen RARfähigen<br />
Entpacker (WinZip). Die Windows-Hilfedatei<br />
jedoch liegt direkt im CHM-Format vor (Endung<br />
.chm).<br />
Das <strong>PHP</strong> Handbuch liegt als Windows-Hilfedatei vor<br />
Zum Aufrufen doppelklickst du einfach auf diese<br />
Datei und schon startet das Handbuch.<br />
SELF<strong>PHP</strong>: Partnerprojekt der SELFHTML<br />
Auch die SELF<strong>PHP</strong> ist eine Empfehlung wert: Surfe<br />
einfach zu www.selfphp.info. Damir Enseleit hat<br />
hier eine Funktionsreferenz und Befehlsübersicht zu<br />
<strong>PHP</strong> ins Netz gestellt, die ich mir an deiner Stelle<br />
ebenfalls herunterladen würde.<br />
Hier hat sich der Link Befehlsverzeichnis am besten<br />
bewährt, da (fast) alle Funktionen und Schlüsselwörter<br />
alphabetisch geordnet sind.<br />
Auf meinem Arbeitsplatz habe ich sowohl die<br />
SELF<strong>PHP</strong> als auch das <strong>PHP</strong> Handbuch im Hilfe-<br />
Format (chm) abgelegt. So bekomme ich auf<br />
Wunsch einen guten Überblick über hunderte von<br />
<strong>PHP</strong>-Funktionen, die auch ein schusseliger Know-<br />
Ware-Autor nicht alle im Kopf haben kann.<br />
Zur Übung: Ordner einrichten<br />
Genug der Vorrede. Zuerst bist du gefragt. Prüfen<br />
wir deine Windows- und HTML-Kenntnisse!<br />
Hast du schon eine Homepage „gestrickt“? Wo<br />
legst du deine Daten auf der lokalen Festplatte ab?<br />
Nehmen wir mal an, dass deine Daten im Verzeichnis<br />
C:\home liegen.<br />
Der Ordner C:\home ist dann das Root-<br />
Verzeichnis deines „Offline“-Webprojekts.<br />
Falls dieser Ordner bei dir noch nicht vorhanden<br />
sein sollte, richtest du nun direkt unter deiner Festplatte<br />
C: diesen Projektordner namens home ein.<br />
Dort erstellst du als Übung bitte einen weiteren<br />
Ordner namens phpkurs.<br />
Wichtig: Richte dir den Projektordner phpkurs ein<br />
Zum Verständnis: Der Ordner home ist weiterhin<br />
dein Start-Verzeichnis <strong>für</strong> dieses Projekt, dein „document-root“.<br />
WICHTIG! Ich empfehle die generelle Kleinschreibung<br />
von Ordner- und Dateinamen. Auf<br />
gar keinen Fall solltest du Groß- und Kleinschreibung<br />
durcheinander bringen.<br />
Erstelle eine Startdatei index.html!<br />
Erstelle nun als weitere Übung im Ordner home eine<br />
HTML-Datei namens index.html (vierstellige<br />
Endung!). Schreibe etwas Informatives in die Seite<br />
hinein, z. B.<br />
Mein lokales Web ist aktiv<br />
Test bestanden? Dann kann’s losgehen mit <strong>PHP</strong>!<br />
HINWEIS: Solltest du spätestens an dieser Stelle aussteigen,<br />
ist der Kurs evtl. noch etwas zu schwer.<br />
Tipp: Die Hefte „<strong>Homepages</strong> <strong>für</strong> <strong>Einsteiger</strong>“,<br />
„<strong>Homepages</strong> mit HTML und CSS“, „Windows<br />
XP <strong>für</strong> <strong>Einsteiger</strong>“ usw. bringen dich sicher auf<br />
Trab!<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
9
10<br />
Lektion 2: Apache und <strong>PHP</strong> – Apache-HTTP-Server mit XAMPP<br />
Lektion 2: Apache-Webserver und <strong>PHP</strong> einrichten<br />
Der Apache-HTTP-Server<br />
Auf in den Wilden Westen! Auch wir begeben uns<br />
auf den Kriegspfad. Nein, es geht nicht um den<br />
Kampf der „Rothäute“ gegen die „Bleichgesichter“.<br />
Wir „kämpfen“ mit der Installation des lokalen<br />
Apache-Webservers und mit der Einrichtung<br />
von <strong>PHP</strong>. Ich bin sicher, dass wir hinterher gemeinsam<br />
die „Friedenspfeife“ rauchen werden.<br />
Damit du die nächsten Beispiele auf deiner lokalen<br />
Festplatte „nachspielen“ kannst, musst du unbedingt<br />
einen Webserver und <strong>PHP</strong> installieren!<br />
Hinweis <strong>für</strong> ganz Eilige!<br />
Du möchtest die Skripte gleich ausprobieren? Dein<br />
Dienstleister ist <strong>PHP</strong>-fähig? Dann kannst du die<br />
nächsten Schritte auch überspringen. Allerdings<br />
musst du die Dokumente stets auf den Server laden,<br />
bevor du sie testen kannst.<br />
Apache: Installationsprobleme?<br />
Wenn du jetzt einen Schreck bekommen hast: Der<br />
Apache-Webserver ist kein großer Kasten, den du<br />
jetzt zusätzlich in deine Wohnstube schieben musst.<br />
Es handelt sich um ein kleines Open Source-Programm,<br />
welches du einfach auf deiner Festplatte installierst.<br />
Nach der herkömmlichen Methode müsstest du alles<br />
einzeln herunterladen und nacheinander installieren:<br />
Apachen, <strong>PHP</strong>, MySQL usw. Und nach jeder<br />
Installation werden unzählige Konfigurationseinstellungen<br />
von dir erwartet; das ist dann das<br />
reinste Gehangel durch gefährlich-kryptische Textdateien.<br />
Doch damit nicht genug. Schon der kleinste Verschreiber<br />
sorgt da<strong>für</strong>, dass gar nichts geht.<br />
Meine Kursteilnehmer, die Leser der vorigen Ausgabe<br />
und ich sprechen hier aus „gequälter Erfahrung“.<br />
Schluss damit, es gibt Besseres!<br />
XAMPP<br />
Es gibt zum Glück ein ganz fabelhaftes Programm,<br />
welches alle diese Dinge ganz automatisch <strong>für</strong> dich<br />
installiert und (in 99% aller Fälle) auch korrekt einrichtet.<br />
Du bekommst:<br />
� Apache-Webserver<br />
� <strong>PHP</strong> und MySQL<br />
� phpMyAdmin<br />
(phpMyAdmin ist ein Tool zum Einrichten und<br />
Administrieren von MySQL-Datenbanken.)<br />
Dieses wunderbare Installations-Paket nennt sich<br />
XAMPP und kann von www.apachefriends.org<br />
kostenlos heruntergeladen werden.<br />
Welche Version du brauchst und wie du die installierst,<br />
beschreibe ich ganz ausführlich in „<strong>PHP</strong> und<br />
MySQL auf der Homepage“. Studiere dort das Kapitel<br />
„Apache und <strong>PHP</strong> installieren mit XAMPP“<br />
und richte dein System ein.<br />
Da<strong>für</strong> musst du dir das Heft nicht kaufen. Es<br />
genügt, wenn du die kostenlosen Probeseiten<br />
von der KnowWare-Homepage herunterlädtst:<br />
http://knowware.de/?book=phpmysql<br />
Funktioniert der Apache?<br />
Klappt bei dir alles? Tippe http://localhost/ in<br />
die Adresszeile des Browsers ein und drücke [¢].<br />
Im Erfolgsfalle siehst du diese Seite<br />
Übrigens bist du nicht auf http://localhost beschränkt!<br />
Du kannst als Alternative auch<br />
http://127.0.0.1 tippen. Selbst die Eingabe<br />
http://Computername führt zum Ziel.<br />
Ich habe mir zu dieser Seite ein Lesezeichen eingerichtet<br />
(Internet Explorer, Menü FAVORITEN), um<br />
stets den schnellen Zugriff auf „Localhost“ zu bekommen.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Lektion 2: Apache und <strong>PHP</strong> – Die Funktion phpinfo()<br />
So entsteht ein echtes Intranet!<br />
Du hast mehrere Computer miteinander vernetzt?<br />
Letztere „Computername-Methode“ gelingt auch<br />
in einem Netzwerk von anderen Rechnern aus.<br />
Tippe http://Rumpel/, wenn die Webseiten auf<br />
Rumpel installiert sind.<br />
Benutzer anderer Rechner können jetzt per HTTP<br />
(Webseiten anschauen) auf dein kleines Web zugreifen.<br />
So ein eigener HTTP-Webserver ist schon<br />
ziemlich famos! Ideal <strong>für</strong> das Intranet!<br />
Wo liegt die Startseite?<br />
Zurück zur Platzhalter-Startseite. Bis jetzt zeigt dir<br />
der Apache in Zusammenarbeit mit XAMPP eine<br />
eigene Test-Seite an. Diese liegt unter<br />
C:\xampp\htdocs<br />
Funktioniert <strong>PHP</strong>?<br />
Nun bist du sicher neugierig, ob <strong>PHP</strong> auf deinem<br />
lokalen System gut funktioniert.<br />
Neues <strong>PHP</strong>-Dokument erstellen<br />
Öffne deinen Texteditor und erzeuge ein <strong>PHP</strong>-<br />
Dokument. Dieses wollen wir info.php nennen<br />
(Endung php!) und gleich im Ordner htdocs (also<br />
unter C:\xampp\htdocs) ablegen.<br />
�<br />
Erzeugen durch Rechtsklick<br />
Meine Vorgehensweise lautet so: Ich klicke mit der<br />
rechten Maustaste in den Ordner, in dem ich das<br />
neue <strong>PHP</strong>-Dokument erstellen will. Dann wähle<br />
ich NEU/TEXTDATEI bzw. NEU/TEXTDOKUMENT<br />
(Windows XP).<br />
Ein Symbol mit dem Platzhalternamen Neu<br />
Textdatei.txt (oder ähnlich) entsteht. Da der<br />
Name markiert ist, überschreibst du ihn einfach mit<br />
info.php.<br />
Nach Druck auf [¢] meckert Windows und behauptet,<br />
die Datei würde möglicherweise unbrauchbar?<br />
Das ist natürlich Unsinn. Du willst<br />
trotzdem ändern und klickst deshalb auf JA.<br />
Wenn alles geklappt hat, liegt nun die (leere) Textdatei<br />
info.php im Ordner htdocs.<br />
Öffne diese Datei.<br />
Nach dem Doppelklick<br />
musst du ggf. die<br />
Zuordnung festlegen.<br />
Wähle im Dialogfenster<br />
ÖFFNEN MIT das NOTEPAD bzw. den EDITOR aus.<br />
Lege fest, dass dieser Dateityp immer mit diesem<br />
Programm geöffnet wird.<br />
Das ist dir zu anstrengend? Dann ziehe die Datei<br />
einfach in das geöffnete Editor-Fenster hinein!<br />
Die Funktion phpinfo()<br />
Notiere nun folgenden HTML-Code. Der <strong>PHP</strong>-<br />
Teil besteht dabei lediglich aus dem Aufruf der in<br />
<strong>PHP</strong> eingebauten Funktion phpinfo().<br />
<br />
<br />
<strong>PHP</strong>-Info<br />
<br />
<br />
Infos zu <strong>PHP</strong><br />
<br />
<br />
<br />
Speichere das Dokument. Da es im Ordner htdocs<br />
(im Root) liegt, tippst du in den Browser ein:<br />
http://localhost/info.php<br />
(Würdest du nur http://localhost/ tippen, würde<br />
die XAMPP-Startseite aufgerufen werden.)<br />
Wenn alles klappt, müsste dieses oder ein ähnliches<br />
Bild erscheinen:<br />
Glückwunsch! <strong>PHP</strong> 5.0.2 ist korrekt installiert!<br />
Rolle das Dokument einmal durch. Du bekommst<br />
eine umfangreiche Auskunft über die installierte<br />
<strong>PHP</strong>-Version, die Serverumgebung, das Betriebssystem,<br />
die Pfade ... und die <strong>PHP</strong>-Lizenz.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
11
12<br />
Editor-Tipp: Weaverslave<br />
Lektion 2: Apache und <strong>PHP</strong> – Editor-Tipp: Weaverslave<br />
Du merkst schon, dass zum Erstellen von <strong>PHP</strong>-<br />
Seiten keine weiteren speziellen Anforderungen gestellt<br />
werden. Ein einfacher Text-Editor als Entwicklungsumgebung<br />
genügt vollkommen.<br />
Wer sich einmal mit Perl herumschlagen musste,<br />
weiß die enorme Arbeitser<strong>leicht</strong>erung sicher zu<br />
schätzen. <strong>PHP</strong> ist total unkompliziert!<br />
Aber viel<strong>leicht</strong> hast du schon einen bevorzugten<br />
Editor? Gerne kannst du unter Windows z.B. Homesite,<br />
Ulis Phase 5, mein favorisiertes HTML-<br />
Kit, Allaires First Page 2000 oder auch den Editor<br />
Notepad benutzen.<br />
Ich empfehle <strong>für</strong> <strong>PHP</strong> den Weaverslave von<br />
Thomas Weinert!<br />
Der Weaverslave ist mehr als ein einfacher HTML-<br />
Editor. Das Programm ist schmal, genügsam und<br />
bietet gerade <strong>für</strong> <strong>PHP</strong> einige Zusatzfunktionen, die<br />
es bald unverzichtbar machen. Außerdem ist das<br />
Programm Freeware!<br />
Weaverslave herunterladen<br />
Wo bekommst du den Weberknecht? Surfe zu<br />
www.weaverslave.ws und lade dir die aktuelle (Beta-)Version<br />
als „ZIP-Paket“ herunter, es sind nicht<br />
viel mehr als 1 MB. Entpacke alle Dateien in einen<br />
Ordner deiner Wahl, z. B. in C:\Programme\<br />
Weaverslave. Du brauchst den Weaverslave nicht<br />
extra zu installieren. Ein Doppelklick auf die<br />
weaversl.exe (nach dem Entpacken) genügt. Du<br />
hast keinen Entzipper? Hole dir einfach das kostenlose<br />
Programm 7-Zip (www.7-zip.org).<br />
Lege dir eine Verknüpfung zur weaversl.exe auf<br />
den Desktop. Dazu ziehst du die Datei bei gedrückter<br />
rechter Maustaste auf den Desktop (siehe<br />
Abbildung in der linken Spalte unten). Danach<br />
wählst du je nach Windows-Version VERKNÜPFUNG<br />
HIER ERSTELLEN (bis Windows 2000) bzw. KOPIE-<br />
REN (Windows XP).<br />
Jetzt kannst du das Programm bequem über diese<br />
Verknüpfung starten.<br />
Weaverslave einrichten<br />
Der Weaverslave ist in Deutsch und Englisch. Dir<br />
kommt trotzdem etwas „Spanisch“ vor? Wähle ggf.<br />
OPTIONEN/ALLGEMEIN. Gehe in den Bereich ALL-<br />
GEMEIN und stelle DEUTSCH ein.<br />
Schaue dich ruhig auch in den anderen Bereichen<br />
um. So kannst du im Bereich SYNTAX Schriftart<br />
und -größe justieren.<br />
Wähle Datei/Neu und entscheide dich <strong>für</strong> eine Vorlage<br />
Nützlich sind auch die über DATEI/NEU abrufbaren<br />
fix und fertigen HTML-Grundgerüste, von denen<br />
ich dir HTML 4 trans. ans Herz lege.<br />
Ebenfalls pfiffig sind der<br />
integrierte Dateibrowser<br />
und vor allem das Syntax-Highlighting.Richte<br />
den Fokus einmal<br />
auf HTML-, zum anderen auf <strong>PHP</strong>-Abschnitte in<br />
deinem Quelltext. Probiere es aus: Bei der Wahl<br />
von <strong>PHP</strong> werden HTML-Bereiche abgeblendet, bei<br />
HTML jedoch erscheinen <strong>PHP</strong>-Abschnitte „dunkel<br />
hinterlegt“.<br />
Ausführliche Erklärungen bekommst du in der<br />
über [F1] aufrufbaren Hilfe.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Lektion 3: Erste Schritte – Hinweise zur Notation<br />
Lektion 3: Erste praktische Schritte mit <strong>PHP</strong><br />
Nun soll es aber endlich losgehen mit <strong>PHP</strong>. In dieser<br />
Lektion mache ich dich mit der <strong>PHP</strong>-Notation<br />
vertraut. Ich zeige dir, wie du ganz unkompliziert<br />
Daten ausgeben kannst.<br />
Außerdem lernst du die fabelhaften Variablen und<br />
Arrays (Feldvariablen) kennen. Doch schön langsam,<br />
alles der Reihe nach!<br />
Hinweise zur Notation<br />
Die <strong>PHP</strong>-Notation ist nicht weiter schwer. Die<br />
<strong>PHP</strong>-Codeschnipsel werden einfach innerhalb eines<br />
ganz gewöhnlichen HTML-Dokumentes notiert.<br />
An welcher Stelle spielt im Prinzip keine Rolle.<br />
Hauptsache du markierst, dass es sich um <strong>PHP</strong>-<br />
Code handelt. Wie? Ganz einfach!<br />
Der Beginn eines <strong>PHP</strong>-Abschnitts wird durch<br />
<br />
Dabei handelt es sich um die Langform, die ich dir<br />
auch empfehle. Denn es gibt auch eine Platz sparende<br />
Kurzform:<br />
<br />
Selbst an ASP-Umsteiger hat man gedacht:<br />
<br />
�<br />
Attraktiveres Layout durch Style Sheet<br />
Wundere dich nicht über meine Beispiel-Dateien<br />
und -Abbildungen! Für ein attraktiveres Layout habe<br />
ich alle Dateien mit der externen Style-Sheet-<br />
Datei neu.css verbunden. Dabei färbte ich z.B. das<br />
-Tagpaar rot ein.<br />
Für schickes Layout sorgt die externe Style Sheet-Datei<br />
Die wichtigsten Details zur Gestaltungssprache<br />
CSS erfährst du übrigens in meinem Heft „<strong>Homepages</strong><br />
mit HTML und CSS“.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
13<br />
Das erste Skript: Hallo Welt<br />
Hallo Welt! So lautet in der Regel das erste Skript<br />
in einer neuen Programmiersprache. Da auch wir<br />
mit dieser hübschen Tradition keinesfalls brechen<br />
wollen, präsentiere ich hier das berühmte Hallo-<br />
Welt-Skript in <strong>PHP</strong>!<br />
Daten ausgeben mit echo<br />
Die folgende Codezeile gibt einen Text aus, der zusätzlich<br />
den Schriftzug „Hallo Welt“ ins HTML-<br />
Dokument schreibt. Zur Ausgabe der Daten bedienen<br />
wir uns hierbei der Sprachanweisung echo.<br />
Begrüße die <strong>PHP</strong>-Welt mit einem kräftigen Hallo!<br />
Erstelle also ein neues, noch leeres HTML-Dokument,<br />
schreibe ein öffnendes -Tag, dahinter<br />
ein schließendes . Notiere innerhalb von<br />
folgende Codezeile.<br />
<br />
Speichere das Dokument unter dem Namen<br />
hallo.php, am besten in einem extra Ordner<br />
phpkurs, den du dir flugs unter dem Ordner<br />
htdocs einrichtest. Einverstanden? Rufe nun das<br />
Dokument im Browser auf, also über<br />
http://localhost/phpkurs/hallo.php.<br />
Wenn alles geklappt hat, müsste jetzt der Schriftzug<br />
Hallo Welt im Browser erscheinen. Übrigens: Ob<br />
du den Text mit doppelten bzw. einfachen Gänsefüßchen<br />
umkleidest, ist hierbei noch egal. Ich<br />
schlage generell die doppelten vor, um nicht<br />
durcheinanderzukommen.<br />
HTML-Tags innerhalb von echo<br />
Du möchtest das Wort Hallo fett formatieren?<br />
Nimm die entsprechenden HTML-Tags und baue<br />
sie wie folgt ein:<br />
echo "Hallo Welt!";
14<br />
Wie du siehst, lassen sich HTML- und <strong>PHP</strong>-Anweisungen<br />
wunderbar vermischen. Gerade das<br />
macht die Arbeit mit <strong>PHP</strong> so flexibel.<br />
Semikolon <strong>für</strong> Zeilenabschluss<br />
Viel<strong>leicht</strong> fragst du dich: Wozu das Semikolon am<br />
Ende? Muss das sein? Jawohl, dieses Semikolon am<br />
Zeilenende ist Pflicht!<br />
echo "Hallo Welt!";<br />
Lektion 3: Erste Schritte – Hinweise zur Notation<br />
Wie in C++, Java oder JavaScript musst du auch in<br />
<strong>PHP</strong> Codezeilen in der Regel durch ein Semikolon<br />
abschließen. Spätestens wenn dein Skript mehr als<br />
eine Zeile besitzt, hagelt es sonst Fehlermeldungen.<br />
Häufiger Fehler: Abschluss-Semikolon vergessen<br />
Wie bei jeder Regel gibt es auch Ausnahmen: Wird<br />
durch das Schlüsselwort function() eine Funktion<br />
definiert, musst du auf das Semikolon verzichten.<br />
Auch nach if, else, while, switch usw. ist z.B.<br />
kein Semikolon zulässig. Zumindest in letzteren<br />
Fällen mache ich dich rechtzeitig darauf aufmerksam.<br />
(Hinweis: Funktionen lernst du im Nachfolgeheft<br />
bzw. im Buch ausführlich kennen!)<br />
In JavaScript dagegen kannst du ruhig die Semikolons<br />
weglassen, sofern du einen Zeilenumbruch<br />
setzt. In <strong>PHP</strong> funktioniert das nicht.<br />
Ein vergessenes Semikolon führt in <strong>PHP</strong><br />
unweigerlich zu einer Fehlermeldung!<br />
Mehr Überblick durch Kommentare<br />
Ich rate dir: Arbeite mit Kommentaren! Schreibe<br />
auf, was eine bestimmte Codezeile macht.<br />
Bei kurzen Skripten erscheint es dir viel<strong>leicht</strong> als<br />
überflüssig. Doch spätestens bei längeren Projekten<br />
weißt du nach Wochen oder Monaten nicht mehr,<br />
wo<strong>für</strong> eine bestimmte Zeile dient oder was gerade<br />
diese dreizehnte schließende Klammer zu sagen<br />
hat. Wetten?<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
�<br />
Kommentarsyntax in <strong>PHP</strong><br />
CSS- und JavaScript-Freunde kennen die Syntax.<br />
Ein kurzer Kommentar steht hinter dem doppelten<br />
Slash //. Mehrzeilige Kommentartexte werden<br />
einfach in /* ... */ eingehüllt.<br />
// Das ist ein kurzer Kommentar<br />
/* Dieser Kommentar kann<br />
über mehrere Zeilen gehen */<br />
Da man auch an Perl-Umsteiger gedacht hat, ist<br />
auch folgende Kommentierweise möglich. Hier beginnt<br />
jeder Kommentar mit einem Gatterzeichen:<br />
# Kommentar in Perl (Unix)-Manier<br />
Bei meinen längeren Beispielen zeige ich dir gelegentlich<br />
kurze Kommentare. Außerdem gliedere<br />
ich meinen Code häufig durch zusätzliche Leerzeichen<br />
bzw. sogar Leerzeilen. Auch das ist unkritisch,<br />
da diese Zeichen von <strong>PHP</strong> nicht ausgelesen werden.<br />
�<br />
Kommentare bzw. Leerzeichen/-zeilen<br />
beeinflussen den Programmablauf nicht.<br />
Kommentarsyntax HTML<br />
Nur zur Wiederholung hier schnell noch die<br />
Kommentarsyntax <strong>für</strong> HTML.<br />
Möchtest du in HTML kommentieren, setzt du ein<br />
<br />
oder<br />
//--><br />
beendet.<br />
Geheimtipp: Auskommentieren<br />
Wozu sind Kommentare noch gut? Nutze Kommentare<br />
gezielt zur Fehlersuche!<br />
Nach Ergänzung einiger Zeilen funktioniert dein<br />
<strong>PHP</strong>-Skript plötzlich nicht mehr? Kommentiere<br />
eine Zeile zur Probe aus. Kommentiere weitere<br />
Zeilen aus, bist du dem Problem auf die Schliche<br />
gekommen bist. Du kannst Kommentare auch dazu<br />
nutzen, alternative Zeilen „aufzubewahren“.
Lektion 3: Erste Schritte – Was sind Variablen?<br />
Variablen als veränderbare Speicherstellen<br />
Nun zu den Variablen. Kaum eine Programmiersprache<br />
kommt ohne diese „variablen Platzhalter“<br />
aus. Klären wir zuerst, was sich hinter dem Konzept<br />
der Variablen verbirgt.<br />
Was sind Variablen?<br />
Variablen sind Speicherstellen im Hauptspeicher des<br />
Computers. Stelle sie dir als Behälter vor, die <strong>für</strong> die<br />
Zeitdauer der Programmausführung zur Verfügung<br />
stehen. In diesen „Behältern“ kannst du <strong>für</strong> die<br />
Dauer der Ausführung des Skriptes Werte „aufbewahren“.<br />
Stell dir Variablen als eine Art „Behälter‘‘ vor<br />
Dabei ist es egal, ob es sich um Zahlen oder um<br />
Text (um so genannte Zeichenketten) handelt.<br />
Im Zusammenhang mit Zeichenketten spricht<br />
man auch vom String.<br />
Während der „Lebensdauer“ einer Variablen kannst<br />
du immer wieder auf die dort gespeicherten Werte<br />
zurückgreifen. Doch damit nicht genug: Werte in<br />
Variablen lassen sich auch verändern. Denke einfach<br />
an das Ergebnis einer Warenkorbberechnung. Mit<br />
jedem neuen bestellten Produkt erhöht sich dieses.<br />
Aber auch Text „wächst“: So ist es durchaus möglich,<br />
dass eine Variable anfangs nur ein Wort enthält<br />
doch zum Schluss den Text einer ganzen HTML-<br />
Seite beherbergt.<br />
Datentypen der Variablen<br />
Zwei „Datentypen“ hatte ich schon erwähnt. Es<br />
gibt zum einen Strings und zum anderen Zahlen.<br />
Große Programmiersprachen wie C++, Visual Basic<br />
oder Java untergliedern das Ganze jedoch weitaus<br />
genauer.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
15<br />
Da gibt es je nach Sprache neben String auch<br />
Integer (Ganzzahl), Boolean (Wahrheitswert),<br />
Byte (Ganzzahlen von 0-255), Float (Kommazahlen),<br />
Double, Date, Currency, Variant usw.<br />
usf.<br />
Jede Variable muss man am Anfang (beim Deklarieren)<br />
penibel einem bestimmten Datentyp zuordnen.<br />
Wenn man so eine Sprache lernt, bekommt<br />
man schon am Anfang die große Krise.<br />
Unser Kurs bleibt krisenfrei! Zum Glück ist <strong>PHP</strong><br />
eine einfache Skriptsprache, die nur <strong>für</strong> das Web<br />
geschrieben wurde. Alles Unwesentliche haben die<br />
Entwickler weggelassen. Im Klartext: In <strong>PHP</strong><br />
musst du dich nicht um den Datentyp kümmern.<br />
Datentypen werden automatisch erkannt und zugewiesen.<br />
Genau wie JavaScript (das in der Regel<br />
auch nur im Web Sinn macht) ist <strong>PHP</strong> eine Sprache<br />
mit „Loose Typing“.<br />
Nur zur Information: <strong>PHP</strong> arbeitet intern immerhin<br />
mit den Datentypen String (Text), Integer<br />
(Ganzzahl), Float (Kommazahl) bzw. true/false<br />
(Wahrheitswert). Und noch eine Information <strong>für</strong><br />
JavaScript-Kenner: Variablen müssen nicht extra<br />
deklariert werden. Sobald du eine Variable das erste<br />
Mal benutzt (initialisierst), gilt sie als deklariert.<br />
Erlaubte Variablennamen<br />
Wie sehen diese Variablen eigentlich aus? Zuerst<br />
gilt: Jeder Variablenname muss – ganz im Gegensatz<br />
zu JavaScript und Co. – unbedingt mit einem<br />
Dollarzeichen beginnen ($). Den Rest darfst<br />
du dir selber ausdenken. Verwende z.B. $Name als<br />
Platzhalter zur Speicherung eines Namens.<br />
Verzichte auf Umlaute, Leer- und Sonderzeichen.<br />
Beachte, dass zwischen Groß- und Kleinschreibung<br />
unterschieden wird, dass also $Name und $name unterschiedliche<br />
Variablen sind! Bestimmte <strong>für</strong> <strong>PHP</strong><br />
reservierte Wörter wie while, if, switch usw.<br />
darfst du ebenfalls nicht als Variablennamen verwenden.<br />
Beginne nicht mit einer Zahl.<br />
Der Unterstrich (_) ist erlaubt und dient oft als<br />
Ersatz <strong>für</strong> das verbotene Leerzeichen.
16<br />
Lektion 3: Erste Schritte – Hallo Hans ... ein praktisches Beispiel!<br />
Hallo Hans ... ein praktisches Beispiel!<br />
Wie wär’s mit einem praktischen Beispiel? Erstelle ein Dokument namens variable1.php. Notiere hier das<br />
Grundgerüst eines HTML-Dokuments (oder wähle in Weaverslave NEU/DATEI und entscheide dich <strong>für</strong> einen<br />
Eintrag.)<br />
Der in der Variablen gespeicherte String wird im Browser als HTML ausgegeben<br />
Erstelle einen Absatz. (Das ist zwar nicht zwingend notwendig, doch nach dem neuesten HTML-Standard<br />
muss jeglicher Text innerhalb eines Blockelements stehen). Binde nun folgende <strong>PHP</strong>-Zeilen innerhalb dieses<br />
Absatzes ein:<br />
<br />
Rufe das Dokument im Browser auf. Wenn alles geklappt hat, müsste der Text Hallo Hans, herzlich willkommen!<br />
im Browser erscheinen. Wichtig zu wissen: Diesmal muss die Passage nach echo unbedingt in doppelten<br />
Gänsefüßchen stehen. Denn nur so sucht <strong>PHP</strong> nach Variablen und wertet deren Inhalt aus!<br />
Was machen diese beiden Zeilen? In der ersten Codezeile wird die Variable initialisiert, sie wird mit der Zeichenkette<br />
Hans „gefüttert“. Die zweite Zeile gibt schließlich den Inhalt der Variablen in etwas netter verpackter<br />
Form aus.<br />
Merke dir: Die mit Inhalt zu füllende Variable steht links. Das Istgleich-Zeichen wird Zuweisungsoperator<br />
genannt. In Gänsefüßchen steht die Zeichenkette, welche wir in der Variablen sichern.<br />
Strings werden stets innerhalb von Gänsefüßchen notiert.<br />
Wenn du einen Zahlwert in einer Variablen sichern möchtest, darfst du natürlich keine Gänsefüßchen<br />
schreiben. Im Beispiel ist es aber eine Zeichenfolge, also eine Variable vom Typ String.<br />
Aber wie schon erwähnt, die Datentypen müssen uns an dieser Stelle überhaupt nicht stören. <strong>PHP</strong> ist sogar<br />
fähig, z.B. Zahlen (die du aus Versehen doch in Gänsefüßchen gekleidet hast) automatisch vom Typ String in<br />
einen der beiden Zahlentypen umzuwandeln. Und umgedreht.<br />
Müssen Strings und Variablen verkettet werden?<br />
Kannst du schon JavaScript (oder andere Programmiersprachen)? Dann wirst du an dieser Stelle viel<strong>leicht</strong> laut<br />
protestieren und fragen: Wo bleibt denn der Verkettungsoperator bei der Ausgabe durch echo? Denn normalerweise<br />
muss man Zeichenfolgen (die Teile in Gänsefüßchen) und die Variablen miteinander verketten. In<br />
JavaScript wird da<strong>für</strong> der Verkettungsoperator + verwendet, (was immer wieder zu Problemen führt, da das<br />
+-Zeichen gleichzeitig auch als Additions-Operator dient).<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Lektion 3: Erste Schritte – Der Verkettungsoperator Punkt (.)<br />
Wie gesagt, <strong>PHP</strong> ist einfach! Die Antwort auf die Frage von oben lautet: In der Regel nicht. In <strong>PHP</strong> ist das<br />
umständliche Verketten von Variablen mit Zeichenketten oft nicht mehr erforderlich. Das ist eine enorme<br />
Arbeitser<strong>leicht</strong>erung im Vergleich zu JavaScript.<br />
Der Verkettungsoperator Punkt (.)<br />
Wie erwähnt, in der Regel ist das Verketten von Zeichenfolgen und Variablen nicht erforderlich. Du kannst<br />
den Verkettungsoperator verwenden, musst es aber nicht.<br />
Allerdings gibt es zu jeder Regel Ausnahmen, bei denen du den Verkettungsoperator doch benötigst, beispielsweise<br />
bei der Rückgabe von Werten aus Funktionen oder Arrays. Wohlweislich hat man in <strong>PHP</strong> einen<br />
einfachen Punkt gewählt (.), und kein Pluszeichen. Damit du die Syntax an dieser Stelle schon einmal kennen<br />
lernst, zeige ich dir das „Hallo-Hans-Skript“ nun in der etwas „umständlicheren“, verketteten Variante.<br />
Dann sieht es so aus:<br />
<br />
Das Resultat ist exakt das gleiche. Vergleiche mit der Datei variable2.php aus dem Ordner lektion3. Einen<br />
ersten echten „Einsatzfall“ <strong>für</strong> den Verkettungsoperator zeige ich dir auf Seite 26 im Zusammenhang mit<br />
einer Funktion.<br />
Ich habe einen Fehler gemacht …<br />
Gib es schon bei diesem kleinen Beispiel einen Fehler? Hier eine kleine Checkliste:<br />
� Hast du jede Zeile mit einem Semikolon abgeschlossen?<br />
� Hast du den Variablennamen auch wirklich mit einem Dollarzeichen ($) begonnen, und nicht mit einem<br />
Paragraphzeichen (§) oder dem Prozentzeichen (%)? Hast du die Gänsefüßchen richtig gesetzt?<br />
� Und überhaupt: Hast du das Dokument wirklich im Browser über http://localhost usw. aufgerufen<br />
bzw. auf den Server deines <strong>PHP</strong>-fähigen Dienstleisters überspielt und dann überprüft? Denn das „normale“<br />
Aufrufen aus Weaverslave heraus wird nicht funktionieren, da ja der <strong>PHP</strong>-Interpreter dazwischengeschaltet<br />
werden muss.<br />
Download der Beispieldateien<br />
Apropos Fehler. Keine Lust zum Abschreiben? Oder du findest einfach nicht die Stelle, wo das Problem sitzt?<br />
Du kannst dir alle Beispiele aus dem Web herunterladen. Surfe einfach zur Serviceseite <strong>für</strong> dieses Heft<br />
www.knowware.de/?book=php5 und lade dir die Dateien herunter. Als Windows-Freund nimmst du einfach<br />
das selbstentpackende Archiv (Exe-Datei). Dann entpacken sich alle Beispiele automatisch in ganz bestimmte<br />
Unterordner, die unter C:\home\phpkurs entstehen. Ich habe die Dateien jeweils nach Lektion geordnet.<br />
So findest du die bisherigen Beispiele in den Ordnern lektion2 und lektion3.<br />
(Deine eigenen Dateien legst du in diesem Kurs jedoch am besten weiterhin unter htdocs/phpkurs ab.)<br />
Break und Zeilenumbruch, was ist der Unterschied?<br />
Es gibt den Breakdance, das Brechfasten (breakfast) und den break. Letzterer wird gerne in HTML verwendet<br />
und sorgt da<strong>für</strong>, dass ein Zeilenumbruch entsteht. Und zwar als Zeilenumbruch im Browserfenster.<br />
<strong>PHP</strong> wiederum kennt auch eine Art „break“, der jedoch als new line bezeichnet wird. Wir schauen uns<br />
beide „Brechmittel“ einmal an und finden den Unterschied.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
17
18<br />
Lektion 3: Erste Schritte – HTML-Break versus <strong>PHP</strong>-new line \n<br />
HTML-Break versus <strong>PHP</strong>-new line \n<br />
Wir brauchen ein Beispiel zum Experimentieren. Da<strong>für</strong> empfehle ich unser „Hallo-Hans-Skript“ in der ersten,<br />
„verkettungsfreien“ Fassung. Speichere das Dokument bitte unter dem Namen umbruch1.php. Nimm<br />
folgende Ergänzung vor (Fettdruck):<br />
<br />
Nichts Abenteuerliches ist passiert. Wir haben in die erste Zeile einen HTML-Umbruch () eingefügt<br />
und eine zweite echo-Zeile ergänzt. Wie erwartet sieht das Ergebnis im Browser folgendermaßen aus:<br />
Durch das Tag wird eine neue Zeile im Browserfenster begonnen<br />
Und nun wirf bitte einmal einen Blick in den HTML-Quelltext. Dazu wählst du im Internet Explorer einfach<br />
ANSICHT/QUELLTEXT.<br />
Im Quelltext im Hintergrund findet jedoch kein Zeilenumbruch statt<br />
Wie du merkst, findet im Hintergrund kein Zeilenumbruch statt. Das ist bei zwei Zeilen noch nicht tragisch.<br />
Doch spätestens bei häufigem Einsatz der echo-Anweisungen entsteht im Hintergrund eine Endlos-<br />
Zeile.<br />
Der Befehl new line \n<br />
Um das zu verhindern, bedient man sich des Befehls new line, der in <strong>PHP</strong> folgendermaßen notiert wird: \n<br />
Überzeuge dich! Ändere bitte das Skript aus umbruch1.php wie folgt:<br />
<br />
Speichere unter dem Namen umbruch2.php ab. Rufe das Dokument auf. Im Browser wirst du keinen Unterschied<br />
zur vorherigen Version merken. Erst der Quelltext enthüllt den Unterschied:<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39
Lektion 3: Erste Schritte – Profiwissen: Das Escape-Zeichen \<br />
Jetzt findet auch „hinter den Kulissen‘‘ ein Zeilenumbruch statt<br />
Beachte, dass vor dem n (wie new line) ein Backslash notiert wird. Schreibe das n ohne Leerzeichen an den<br />
Backslash heran.<br />
Profiwissen: Das Escape-Zeichen \<br />
Interessant! Jetzt hast du das Escape-Zeichen gleich mit Sonderbedeutung kennen gelernt. Es gibt noch mehr<br />
Möglichkeiten. Hier eine Übersicht:<br />
Escape-Zeichen \n \r \t<br />
Erklärung erzeugt neue Zeile „Wagenrücklauf“ erzeugt zusammen<br />
mit \n neue Zeile in E-Mails<br />
erzeugt Tabulatorschritt (Sprung)<br />
Abgesehen davon dient das „Escape-Zeichen“ auch zum Maskieren bestimmter Sonderzeichen, die du sonst<br />
nicht ausgeben könntest.<br />
�<br />
Gänsefüßchen und andere Sonderzeichen maskieren<br />
Du möchtest in deinem Skript den Namen in Gänsefüßchen ausgeben? Normalerweise signalisieren Gänsefüßchen,<br />
dass ein String beginnt oder endet. Also sind sie eigentlich verboten. Erst wenn du die Gänsefüßchen<br />
folgendermaßen „maskierst“, werden sie korrekt angezeigt:<br />
echo "Hallo \"$Name\", herzlich willkommen!";<br />
Du findest das Beispiel unter dem Namen escape.php.<br />
Bestimmte Zeichen wie das Anführungszeichen, das $-Zeichen oder der \ selbst müssen maskiert werden<br />
Maskiere auch einfache Anführungszeichen ('), das Dollar-Zeichen ($) oder den Backslash (\), falls du diese<br />
Zeichen per echo als HTML ausgeben willst. Das gilt aber nur, wenn die umfassenden Anführungszeichen<br />
auch einfache sind wie in dieser Passage: echo ' Willi\'s Bar'; Im nächsten Beispiel ist der Backslash dagegen<br />
überflüssig und wird daher auch mit angezeigt: echo " Willi\'s Bar";<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39<br />
19
20<br />
Lektion 3: Erste Schritte – Arrays in der Langform<br />
Variablentyp Array: Feldvariablen bzw. Wertelisten<br />
Die Variablen sind ja gut und schön. Doch was<br />
macht man, wenn man mehrere Werte in einer einzigen<br />
Variablen speichern möchte? Und wenn diese<br />
Werte irgendwie zusammengehören?<br />
Dann nimmt man die praktischen Arrays, auch als<br />
Datenfelder oder Wertelisten bezeichnet.<br />
In <strong>PHP</strong> kannst du – übrigens genau wie in<br />
JavaScript – mit einer Langform und einer<br />
Kurzform arbeiten.<br />
Zusätzlich gibt es in <strong>PHP</strong> die assoziativen Arrays,<br />
und das ist eine ganz schicke Sache! Dazu später<br />
mehr!<br />
Hinweis: Das Wort Array wird ä-‘räi ausgesprochen.<br />
Sprich das erste „ä“ kurz, die Betonung liegt<br />
auf der letzten Silbe.<br />
Arrays in der Langform<br />
Was gehört zusammen? Halten wir doch einmal die<br />
Wochentage in solch einer fabelhaften Werteliste<br />
fest. Zuerst zeige ich dir die Langform.<br />
Arrays bestehen – der Begriff Werteliste sagt es<br />
schon – aus mehreren Werten. Diese werden von<br />
<strong>PHP</strong> intern durchgezählt. Der entsprechende Zähler<br />
nennt sich Index-Wert oder auch Schlüssel<br />
(key). Der key (Zähler) beginnt in der Voreinstellung<br />
stets bei 0. Das ist in den meisten Programmiersprachen<br />
der Fall und stiftet oft Verwirrung.<br />
Merke es dir!<br />
Der erste Wert in einem Array trägt per Voreinstellung<br />
die Index-Nummer 0.<br />
Wie wäre es mit einem neuen Beispiel? Meine<br />
Musterdatei heißt wochentage1.php. Das Schöne<br />
an der Langform ist, dass sowohl Index-Wert als<br />
auch Variablenwert jeweils in einer eigenen Zeile<br />
aufgeschrieben werden. Das erhöht die Übersicht.<br />
Gleichzeitig gebe ich einen Wert aus dem Array<br />
aus. Dazu bedient man sich folgender Syntax:<br />
$Variable[Indexwert]<br />
Heißt die Variable $tag? Dann kann ich den vierten<br />
Wert folgendermaßen ermitteln:<br />
$tag[3]<br />
Hier nun der <strong>PHP</strong>-Teil <strong>für</strong> die „Wochentage“:<br />
<br />
Skript ausprobieren<br />
Und so sieht das Ergebnis im Browser aus. Der<br />
dritte Tag der Woche ist eigentlich der vierte. Denn<br />
Sonntag entspricht dem Indexwert 0.<br />
Alle Wochentage sind in einer Variablen gespeichert<br />
Arrays in der Kurzform<br />
Cut it short! Oder: Make it snappy. Wie auch immer:<br />
Die Kurzform sieht folgendermaßen aus. Wer<br />
sich z. B. in JavaScript auskennt, merkt, dass hier<br />
die gleiche Syntax verwendet wird:<br />
<br />
Nach dem Schlüsselwort array folgt in runden<br />
Klammern die Werteliste. Alle Werte werden durch<br />
Komma voneinander getrennt. Die Zuweisung der<br />
keys (Indexierung) erfolgt automatisch. Der grau<br />
schattierte Teil ist normalerweise eine Zeile. Wenn<br />
du sie umbrichst, dann nur nach dem Komma.<br />
Vergleiche mit der Datei wochentage2.php aus<br />
lektion3.<br />
© Johann-Christian Hanke: <strong>PHP</strong> 5 <strong>leicht</strong> & <strong>verständlich</strong> - 13.09.2005 - 3:39