16.11.2012 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!