Transcript

KnowWare

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

2

PHP 5 leicht & verständlich Aktualisierte Neubearbeitung von „PHP für Einsteiger“ (Extra 12)

Johann-Christian Hanke, www.jchanke.de ISBN 87-91364-63-9, 1. Auflage: 2005-10 © Copyright 2005 by KnowWare Aps Cover: Sylvio Droigk/JCH, Fachlektorat & Schlussredaktion: Manfred Buchholz Satz und Layout: Johann-Christian Hanke, Coverfoto: JCH [email protected][email protected] Printer: OTM Denmark, Binder: Gramo Denmark, Published by KnowWare

Bestellung für Endverbraucher und Vertrieb für den Buchhandel

KnowWare-Vertrieb Postfach 3920 D-49029 Osnabrück Tel.: +49 (0)541 33145-20 Fax: +49 (0)541 33145-33 [email protected] www.knowware.de

Vertrieb für den Zeitschriftenhandel:

IPV, Postfach 10 32 46, D-20022 Hamburg Tel.: +49 (0) 40 23711-0 Fax: +49 (0) 40 23711-215 www.ipv-online.de

Worum es geht

Hinter KnowWare steht der Gedanke, Wis-sen leicht verständlich und preisgünstig zu vermitteln.

Wo und wann sind die Hefte erhältlich?

Neue Hefte sind im Allgemeinen zwei Mo-nate im Handel: und zwar bei Kiosken, im Bahnhofsbuchhandel und im Buchhandel – bei vielen Verkaufsstellen sowie im Buch-handel auch länger. Alle beim Verlag vor-rätigen Titel kannst du immer bestellen!

Bestellung

bei deinem KnowWare-Händler oder di-rekt bei uns – bitte Bestellformular am Ende des Heftes ausfüllen!

beim KnowWare-Vertrieb (siehe oben)

www.knowware.de

Shop- und Servicebereich – du kannst jeden der 120 Titel sofort bestellen!

komplettes Inhaltsverzeichnis

Probeseiten aller Hefte im Originallay-out (als PDF) – jeweils bis zu 20 Sei-ten!

ausverkaufte Titel: In vielen Fällen ist sogar das gesamte Heft als PDF kosten-los herunterladbar

geplante Titel und Vorbestellung

kostenloser Newsletter: Informationen über Neuerscheinungen

interne Suchfunktion: Du findest schnell, was du suchst

Autoren gesucht: Infos für die Bewer-bung!

Serviceseiten zu den Heften, haupt-sächlich von den Autoren selbst

Tipps und Tricks

Johann-Christian Hanke

wurde 1968 geboren und ist Literaturwissenschaftler. Seit 1997 arbeitet er als freier Au-tor für große Verlage. Für KnowWare hat er 35 Titel verfasst, von denen viele zu Bestsellern wurden. Johann-Christian ist kein klassischer Computer-Experte, son-dern Autodidakt. Er schreibt stets aus der Sicht des Lernenden: verständlich und humorvoll statt technisch und tro-cken! www.jchanke.de

www.knowware.de

Inhaltsverzeichnis

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

3

Inhaltsverzeichnis: PHP ... Eine Seite Vorbemerkungen........5 Lektion 1: Shootingstar PHP – Erste Tipps und Infos..........................................6

Wer hat PHP erfunden? .................................6 Was ist PHP? .................................................6 Wie funktioniert PHP? ....................................6 Was kostet PHP? ...........................................7 PHP-Unterstützung beim Hoster....................7 Ist PHP einfach?.............................................7 Was kann PHP? .............................................7 PHP-Nachschlagewerke im Netz...................8 Zur Übung: Ordner einrichten ........................9

Lektion 2: Apache-Webserver und PHP installieren ...............................................10

Der Apache-HTTP-Server ............................10 XAMPP.........................................................10 Die Funktion phpinfo().................................. 11 Editor-Tipp: Weaverslave .............................12

Lektion 3: Erste praktische Schritte mit PHP...........................................................13

Hinweise zur Notation ..................................13 Das erste Skript: Hallo Welt .........................13

Variablen als veränderbare Speicherstellen........................................15

Was sind Variablen?.....................................15 Hallo Hans ... ein praktisches Beispiel!........16 Der Verkettungsoperator Punkt (.) ...............17 Download der Beispieldateien .....................17

Break und Zeilenumbruch, was ist der Unterschied? ...........................................17

HTML-Break <br> versus PHP-new line \n..18 Profiwissen: Das Escape-Zeichen \ .............19

Variablentyp Array: Feldvariablen bzw. Wertelisten ...............................................20

Arrays in der Langform.................................20 Wochentag dynamisch ermitteln ..................21 Array-Elemente zählen mit count() ..............22 Assoziative Arrays........................................22 Gänsefüßchen-Problem? Strings verketten! 23

Lektion 4: Rechnen mit PHP – Operatoren und Funktionen...................24

Die Rechenoperatoren ................................ 24 Beispiel Addition .......................................... 24 Mehrwertsteuer aus Nettowert .................... 24 Mehrwertsteuer aus Bruttowert ................... 25 Datenausgabe mit oder ohne Verkettung?.. 26 Die Funktion sprintf() als „Formatieranweisung“ ................................. 27

ÜBUNGSTEIL A: Variablen, Funktionen, Berechnungen.....................................28

Lektion 5: Formularauswertung mit HTML und PHP ........................................30

Wie wertet man Formulare aus? ................. 30 Erster praktischer Test................................. 31 Formular auswerten .................................... 32 if-else-Entscheidungsstruktur ...................... 32 Mann oder Frau? Entscheide dich! ............. 33 Vergleichsoperatoren im Blick..................... 34 Die Funktion isset() prüft Variablen ............. 35 Formularauswertung in einem Dokument ... 36 Weitere Änderungen im Skript .................... 37 Wichtiges Formular-Know-how für Fortgeschrittene .......................................... 38 Formular als assoziatives Array .................. 38 Gelöst: Das Gänsefuß-Problem .................. 39 Funktion htmlspecialchars() ........................ 40 Funktion stripslashes() ................................ 40 Umbruch erhalten mit nl2br()....................... 41

Lektion 6: Passwort und Co. – Kontrollstrukturen de luxe .....................42

Umleitung durch header()............................ 42 if und elseif .................................................. 42 Die switch-Anweisung ................................. 45 Unterschiede zu if und elseif ....................... 45 Farbwahl ganz individuell ............................ 46

Lektion 7: Das Wichtigste über Schleifen in PHP ......................................................47

Die while-Schleife........................................ 47 Prüfung im Fuß: do while ............................ 49

Johann

Inhaltsverzeichnis

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

4

Zählschleife mit for .......................................49 Neu und supergenial: foreach für Arrays .....51

ÜBUNGSTEIL B: Kontrollstrukturen, Formulare, Schleifen...........................52

Lektion 8: Formularversand und Formularvalidierung................................54

Die Funktion mail() .......................................54 Der Mini-Mailer für jeden Tag .......................54 Kurzform für Zuweisung/Verkettung.............56 Erfüllt alle Wünsche: Universal-Formmailer.57 Formular-Auswertung für Profis ...................58 Das Skript im Überblick................................59 Dynamisch neue Seite einblenden ..............60 JavaScript: history-Button ............................61 Exit beendet das Programm.........................61 Daten an mail.php übergeben......................61

Lektion 9: Zähler und Gästebuch, Arbeit mit Dateien ...............................................62

Richte einen Zähler ein! ...............................62 Die Funktion fgets() ......................................63 Ein einfaches Gästebuch .............................63 Die Funktion fread() .....................................65 Datum ausgeben mit date()..........................65 Schalter der Funktion date() ........................66

Lektion 10: Cookies: Begrüßung und Web-Umfrage ...........................................67

Was sind Cookies?.......................................67 Cookies setzen mit PHP ..............................68 Lebensdauergarantie für Cookies................70 1, 2 oder 3? Web-Umfrage mit allen Schikanen!....................................................71 Die Funktionen explode() und implode()......73 Grafische Auswertung in der auswertung.php 74

ÜBUNGSTEIL C: Übungen zu Formularen, Dateien, Cookies............76

Anhang: Schreibschutz aufheben mit chmod 666................................................77 Stichwortverzeichnis ..............................78

120 interessante KnowWare-Titel! KnowWare bietet dir eine riesige Auswahl an Computerheften und bringt jeden Monat neue Titel auf den Markt – zu Themen rund um den PC. Auch wenn die Titel am Zeitschriftenkiosk vergriffen sind, halten wir alle zum Bestellen bereit. Wir drucken regelmäßig nach!

Insgesamt bieten wir dir 120 preiswerte Hefte auf www.knowware.de an! Sie sind allesamt sofort lieferbar! Kennst du schon unsere interessanten Ti-tel zu Windows? Tipps & Tricks zu Windows Windows-Netzwerke für Einsteiger

Eins unserer Hauptthemen ist Office: Open- und Starwriter für Einsteiger Excel 2000–2003 im Schnellkurs Diagramme mit Excel Word 2003/2002 leicht & verst. Access 2003/2002 leicht & verst. PowerPoint 2003 (2002/XP) für

Einsteiger Office 2003 für Einsteiger Word für Profis

Lust auf die eigene Homepage? Homepages für Einsteiger Homepages mit HTML und CSS Homepages für Fortgeschrittene Erfolg mit der Homepage Homepages für Profis Barrierefreies Webdesign

Programmieren und Linux erklären wir dir auch: C++ leicht & verständlich Delphi für Einsteiger PHP und MySQL auf der

Homepage (2. Teil dieses Kurses!) Umsteigen! … auf Linux JavaScript für Einsteiger

Vorwort

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

5

PHP ... Eine Seite Vorbemerkungen Willkommen und Danke! Ganz herzlich willkommen, liebe Leserin, lieber Leser! Vielen Dank für das Vertrauen in KnowWare und danke, dass du dich (wieder) für einen (Home-page-)Titel von mir entschieden hast.

Vor dir liegt die dritte Auflage des Heftes, Stand 09/2005. Es ist der erste Teil des inzwischen zweiteiligen Kurses zu PHP (bzw. MySQL). :-)

Was lernst du hier? In diesem Heft führe ich dich am Beispiel in die Pro-grammiersprache PHP ein. Du erfährst

was PHP ist und wie es funktioniert wie du den lokalen Webserver nutzt wie du mit Variablen, Kontrollstrukturen, Fall-

unterscheidungen und Schleifen arbeitest wie du einen Counter, ein Gästebuch und eine

Web-Umfrage programmierst wie du Formulare auswertest und den Inhalt per

Formmailer verschickst wie du einen Passwortschutz setzt wie du Uhrzeit und Datum ermittelst und mit

Cookies arbeitest

In der Fortsetzung dieses Titels namens „PHP und MySQL auf der Homepage“ (2. Auflage 2005) zei-ge ich dir dann auch den Umgang mit Daten-banken und Datenbanktabellen. Am Beispiel einer Adressdatenbank und eines Fotogästebuchs mit Bildupload lernst du das Zusammenspiel von PHP und MySQL kennen. Ich empfehle dir diesen zwei-ten Titel sehr, da ich dort die Installation des Apa-che-Webservers erkläre und viele Tipps und Tricks zum professionellen Programmieren vermittle.

Das Heft ist ein PHP-Kurs! Warum dieses Heft? Ganz einfach. Je näher mein erster PHP-Kurs im April 2002 rückte (als Dozent wohlgemerkt!), desto verzweifelter suchte ich nach einem geeigneten Kursmaterial. Das Einsteigerse-minar PHP 4 vom bhv-Verlag (9,95 €) schied so-fort aus. Die Zielgruppe Einsteiger wurde leider vollkommen verfehlt. Auch die zwei Dutzend an-deren Titel waren für meine Kurszwecke damals ungeeignet – der didaktische Ansatz fehlte.

Deshalb schrieb ich das Skript selber und bot es dem KnowWare-Verlag an. Was soll ich sagen – die haben es gedruckt, und zwar im Juni 2002!

Aus den Erfahrungen heraus, die ich mit diesem Heft gesammelt hatte, entstand 2003 auch mein ers-tes „richtiges“ PHP-Buch „PHP und MySQL für Kids“. Das Buch wurde ein Erfolg und bekam gute Kritiken, u.a. im PHP-Magazin und sogar in der ix. Der Verlag bereitet gerade die dritte (!) Auflage vor. Zurzeit schreibe ich deshalb eine Fortsetzung namens „PHP und MySQL Praxisbuch für Kids“. Dort geht es um Themen wie Authentifizierung, Sessions, Objektorientierung und CMS. Mehr zu diesen Titeln erfährst du auf www.phpkid.de.

Welche Vorkenntnisse? Für dieses Heft benötigst du gute HTML-Kennt-nisse – du solltest HTML-Seiten schon einmal im Quellcode „gebastelt“ haben. In meinem Heft „Homepages mit HTML und CSS“ (168) oder in „Homepages für Einsteiger“ (161) hoffe ich, dir da-für die optimale Einführung gegeben zu haben.

Außerdem setze ich natürlich voraus, dass du mit deinem Betriebssystem gut zurechtkommst. Du weißt, wie man:

den Windows-Explorer (Finder usw.) aufruft mit Ordnern und Dateien umgeht.

Außerdem erwarte ich, dass bei dir die in Windows von Hause aus leider abgeschalteten Dateiendungen eingeblendet sind!!!

Wie du Dateiendungen einblendest, erkläre ich dir u.a. in den Heften zu Windows 98, 2000 bzw. XP.

Hinweis: Dieser Kurs bezieht sich zwar auf Win-dows, da PHP aber plattformunabhängig ist, kannst du auch den Mac oder Linux einsetzen. Außerdem gilt der Kurs für PHP 4 und PHP 5 gleichermaßen!

Serviceseite mit Beispieldateien Hoppla, Probleme beim Abschreiben? Das Skript will einfach nicht funktionieren? Kein Problem!

Es gibt zum Glück eine Serviceseite zu diesem Heft. Auf www.knowware.de/?book=php5 stellt der Verlag alle Beispiele zum Download bereit.

Johann

Lektion 1: Shootingstar PHP – Wer hat PHP erfunden?

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

6

Lektion 1: Shootingstar PHP – Erste Tipps und InfosDu sitzt gerade in der S-Bahn? Im Bus? Oder am PC? Wo immer du bist, mache es dir gemütlich! Zuerst informiere ich dich über PHP und gebe dir erste Tipps für die Einrichtung deines PCs.

Außerdem verrate ich dir kurz, bei welchen Dienst-leistern PHP-Unterstützung am günstigsten ist. Danach setzen wir uns gemeinsam vor einen PC und richten alles Schritt für Schritt ein.

Doch zuerst ein Blick in die Vergangenheit.

Wer hat PHP erfunden? Der Kanada-Däne Rasmus Lerdorf!

Die Dänen sind Weltbürger: www.lerdorf.com

Blenden wir zurück zum Herbst 1994. Rasmus wollte herausfinden, wie seine im Web veröffent-lichte Online-Bewerbung ankommt. Kurzerhand entwickelte er einige „Server-Befehle“ mit deren Hilfe immerhin Gästebuch oder Counter realisiert werden konnten. Fertig waren die „Personal Home Page Tools“ (PHP). Doch am wichtigsten im Web sind schließlich Formulare. So verwundert es nicht, dass Lerdorf im Laufe des Jahres1995 einen Form Interpreter (FI) zur Formularauswertung „dazu-strickte“.

Er stellte seine Entwicklung im Netz frei zur Ver-fügung. Die Entwicklergemeinde begann sich für PHP/FI zu interessieren und bald wurde aus PHP eine ausgewachsene Teamarbeit. Inzwischen liegt PHP in der Version 5.x vor. Die Hauptentwicklung von PHP betreiben längst andere, Rasmus jedoch bleibt der geistige Vater von PHP!

Heute wird PHP als Akronym für Hypertext Preprocessor verwendet, platt gesagt also als Kürzel für „Homepage-Vorschalt-Prozessor“.

Schauen wir nun, was da so „vorgeschaltet“ ist.

Was ist PHP? Eine Programmiersprache. Oder besser: Eine einfa-che Skriptsprache. Sie wird direkt in HTML-Seiten eingefügt und vom Webserver interpretiert.

Da sie eigens für das Web geschrieben wurde, kann sie auch nur Dinge, die im Web nötig sind. PHP schleppt keinen unnötigen Ballast mit wie konkur-rierende Sprachen!

Wie funktioniert PHP? PHP wird, wie eben erwähnt, vom Webserver in-terpretiert. Was passiert dabei genau?

Der Browser schickt einen HTTP-Request an den Webserver (eine Anforderung zum Abruf der Sei-ten). Der Server reagiert, liest die PHP-Seite ein, führt die Skripte aus und schickt erst dann das fertig zusammengesetzte Dokument an den Browser!

Da PHP vom Server ausgeführt wird, bekommt der Betrachter den PHP-Code nie zu sehen. Er erhält das fertige Ergebnis im HTML-Format!

Unterschiede JavaScript – PHP Kannst du evtl. schon etwas JavaScript, vielleicht durch ein Studium meines Titels „Homepages für Fortgeschrittene“? Dann vergleiche ruhig!

JavaScript wird ebenfalls direkt im HTML-Code notiert. Allerdings ist der Code für Betrachter stets im Klartext zu sehen. Warum? Nun, JavaScript wird erst interpretiert, nachdem du die Seite vom Server abgerufen hast. JavaScript wird also vom Client ausgeführt, von deinem Browser, während du eine Seite betrachtest.

Die Nachteile sind bekannt: Jeder Browsertyp hat in Bezug auf JavaScript so seine Eigenheiten und Macken und bei Deaktivierung durch „JavaScript-verachtende“ Betrachter läuft gar nichts.

Hier ist PHP also klar im Vorteil. Wenn es läuft, läuft es. Und zwar in jedem Browser. Hauptsache dein Dienstleister bietet einen Webserver mit PHP-Unterstützung an.

Lektion 1: Shootingstar PHP – PHP-Unterstützung beim Hoster

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

7

Was kostet PHP? Nichts! PHP kostet keinen Cent! Diese Pro-grammiersprache wird im Rahmen der Open Source-Lizenz vertrieben. Der Quellcode liegt of-fen und kann von jedem eingesehen werden.

Das ist ein Lizenzmodell, welches ich sehr unter-stütze. Open Source-Software wird nicht einfach unbemerkt „nach Hause telefonieren“ oder dich in „Big-Brother-Microsoft-Manier“ überwachen.

PHP wird am häufigsten zusammen mit dem eben-falls frei erhältlichen Apache-Webserver eingesetzt. Der „Apache“ ist der populärste Webserver im Net. Mehr dazu später.

PHP-Unterstützung beim Hoster Nun gut, PHP kostet nichts. Du kannst dir also den Apache-Webserver und PHP auf deinem eigenen Rechner installieren und dich über deine tollen Skripte freuen. Und das werden wir im Verlaufe des Kurses auch tun. Doch wenn du andere an deinem „PHP-Glück“ teilhaben lassen willst, musst du ei-nen Dienstleister finden, dessen Webserver mit PHP-Unterstützung arbeiten.

Die ganz billigen Starterpakete der Massenhoster bieten keine PHP-Unterstützung.

Strato Bei Strato gibt es PHP 5 ab PowerWeb A für mo-natliche 5,99 €. Wenn du dazu noch MySQL be-nötigst, musst du monatlich 8,99 € anlegen. Alles ein bisschen teuer, wenn man bedenkt, dass PHP dazu noch im Safe Mode läuft – also mit vielen Einschränkungen! Außerdem war die Ausfüh-rungsgeschwindigkeit in meinen Tests lausig – ich hatte zur Probe die CMS-Systeme Mambo und Typo 3 installiert. Langsamer ging es nimmer. Ich rate von diesen Angeboten daher ab.

Mehr Informationen gibt es auf www.strato.de.

Herausforderer 1&1 (Puretec) Die 1&1 GmbH (www.puretec.de) bietet erst ab dem Paket 1 & 1 Business für 9,99 € pro Monat (ohne Bannerwerbung 12,99 €!) PHP und MySQL-Unterstützung. Auch hier hat mich die Geschwindigkeit nicht überzeugt. Es geht schneller und billiger. Daher: keine klare Empfehlung!

All-Inklusive, Domainfactory und Co. Zu den günstigeren und vor allem besseren Anbie-tern mit PHP/MySQL-Unterstützung gehören z. B. PS-Webhosting (www.ps-webhosting.de) mit Preisen ab 3,49 € pro Monat oder All-Inklusiv (www.all-inkl.de) ab 4,95 € pro Monat . Ideal zum Einsteigen ist auch der 1-Euro-Account unter www.1-euro-account.de, allerdings mit Ein-schränkungen (kein Hochladen von Dateien!).

Kostenlos: Tripod und Internetworx Umsonst? Klar! Bei www.tripod.lycos.de be-kommst du sogar kostenlosen Webspace mit PHP/MySQL-Unterstützung. Zum Ausprobieren genügt das, fürs Business würde ich aufgrund mas-siver Zwangswerbung eher auf ein kostenpflichtiges Paket umsatteln.

webhostliste.de: Erste Anlaufstelle bei der Providerwahl

Informiere dich einfach bei www.webhostlist.de bzw. www.freewebhost.de über Angebote und Konditionen der wichtigsten Webhoster!

Ist PHP einfach? Die Frage sollte besser heißen: Ist PHP einfach zu erlernen? Da sage ich sofort: Ja, sehr einfach sogar. PHP ist einfacher als JavaScript und viel, viel einfa-cher als Perl! So einfach wie Englisch!

Meine schon mit JavaScript „gequälten“ Kursteilnehmer haben gestaunt, wie schnell man

zu Erfolgserlebnissen gelangt.

Was kann PHP? Alles! Oder fast alles, was sich der ambitionierte Homepagebastler schon immer gewünscht hat! Du brauchst einen Zähler oder ein Gästebuch? Kein Problem. In wenigen Codezeilen bist du fertig. Du willst die Uhrzeit anzeigen oder Cookies setzen? Nichts einfacher als das.

Johann

Lektion 1: Shootingstar PHP – PHP-Nachschlagewerke im Netz

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

8

Du möchtest prüfen, ob ein Formular richtig aus-gefüllt wurde? Das ist wichtig! Zeige dem Benutzer alle Formulardaten noch einmal an. Erstelle ein in-teraktives Bestell- und Warenkorbsystem, welches dem Kunden auf Wunsch sogar eine Bestätigungs-Mail mit allen Bestelldaten schickt.

Für das große KnowWare-Bestellformular auf www.knowware.de habe ich so eine PHP-Lösung programmiert. Hier werden alle Preise ausgerechnet und alle Bestelldaten vor dem Versenden noch ein-mal angezeigt (Warenkorbsystem). Alle Besteller erhalten eine Bestätigungs-E-Mail. Das Formular jedoch ist ein ganz gewöhnliches HTML-Formular mit JavaScript.

Beliebt ist PHP jedoch vor allem wegen seiner her-vorragenden Zusammenarbeit mit allen erdenkli-chen Datenbanksystemen. Am häufigsten kommt hierbei MySQL zum Einsatz, da dieses Datenbank-system frei verfügbar ist.

Merke: Das Dreigespann Apache – MySQL und PHP ist fast zum Synonym für datenbankgestütztes Web-Publishing geworden.

Für den Anfang brauchst du SQL nicht: Du wirst sehen, dass das Meiste problemlos auch ohne läuft. Ansonsten gilt: Mehr zu MySQL erfährst du in „PHP und MySQL auf der Homepage“ bzw. „PHP und MySQL für Kids“.

Abkürzungswahn hoch drei: Läuft dein Pro-grammier-System auf einem Linux-Webserver, spricht man von LAMP (Linux - Apache - MySQL - PHP), die für uns für lokale Tests bevorzugte Va-riante ist WAMP (W=Windows).

PHP versus Perl Erwähnte ich vorhin Perl? Die ebenfalls noch häu-fig im Web eingesetzte Programmiersprache Perl ist zwar ebenfalls sehr mächtig, dafür aber auch mächtig kompliziert. Schließlich gehen die Ursprünge von Perl auf eine Zeit zurück (1986), zu der vom Web noch niemand zu träumen wagte.

PHP dagegen entstand knapp 10 Jahre später und wurde direkt für das Web geschrieben.

PHP versus ASP Aber auch ASP mit VBScript bzw. JScript ist keine wirkliche Alternative, da diese „Microsoft-Erfin-dung“ vorrangig an den Internet Information Ser-ver von Microsoft gekoppelt ist. Dieser Webserver-typ besitzt im Gegensatz zum Platzhirsch Apache nur einen kleinen Marktanteil.

Ist Programmieren einfach? Diese Frage beantworte ich am besten mit: Es kommt darauf an! Wenn man schon Vorerfahrun-gen mitbringt, fällt das Lernen einer zweiten Pro-grammiersprache leichter, ähnlich wie beim Erler-nen einer zweiten Fremdsprache.

Der Anfang jedoch ist ziemlich kompliziert. Auch ich gebe zu, dass ich geraume Zeit gebraucht hatte, ehe ich das Konzept der Fallunterscheidungen oder Schleifen so richtig verstanden hatte. Und ich ma-che immer noch und immer wieder Fehler!

Lass also nicht den Kopf hängen, wenn du viele Dinge nicht auf Anhieb verstehst!

Ich versuche, dir vor allem am Anfang alles so ein-fach, ausführlich und verständlich wie möglich zu erklären. Später wird es dann jedoch leider immer komplexer.

Übung macht den Meister Wie beim Sprachenlernen gelten auch bei der Pro-grammiererei die Wahlsprüche: „Übung macht den Meister“ und „Wiederholung ist die Mutter der Porzellankiste“ (oder so ähnlich).

Beschäftige dich mit PHP! Wiederhole die alten Skripte. Probiere Neues aus! Hole dir weiteres Lehrmaterial zum Thema. Stöbere Skripte im Web auf und passe sie an deine Bedürfnisse an.

Vieles ist einfach nur Erfahrung. Bittere Erfahrung.

PHP-Nachschlagewerke im Netz Du willst mehr wissen? Tauche ab ins Netz und „hole“ dir die umfangreichen Online-Ressourcen.

Das offizielle PHP Handbuch Als super Funktions- und Befehls-Überblick emp-fehle ich dir auch die deutsche Übersetzung des of-fiziellen PHP Handbuchs auf

www.php-homepage.de/manual/

Lektion 1: Shootingstar PHP – PHP-Nachschlagewerke im Netz

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

9

Du möchtest dir das Dokument gleich auf den heimischen Rechner herunterladen? Surfe zu:

www.php.net/download-docs.php

Hier findest du dieses Handbuch sowohl als HTML-Version, als PDF-Dokument, als Version für den Palm Pilot und sogar als Windows-Hil-fedatei, wobei ich mir persönlich nur die letztere heruntergeladen habe.

Für alle anderen Dateien benötigst du einen RAR-fähigen Entpacker (WinZip). Die Windows-Hilfe-datei jedoch liegt direkt im CHM-Format vor (En-dung .chm).

Das PHP Handbuch liegt als Windows-Hilfedatei vor

Zum Aufrufen doppelklickst du einfach auf diese Datei und schon startet das Handbuch.

SELFPHP: Partnerprojekt der SELFHTML Auch die SELFPHP ist eine Empfehlung wert: Sur-fe einfach zu www.selfphp.info. Damir Enseleit hat hier eine Funktionsreferenz und Befehlsübersicht zu PHP ins Netz gestellt, die ich mir an deiner Stelle ebenfalls herunterladen würde.

Hier hat sich der Link Befehlsverzeichnis am besten bewährt, da (fast) alle Funktionen und Schlüssel-wörter alphabetisch geordnet sind.

Auf meinem Arbeitsplatz habe ich sowohl die SELFPHP als auch das PHP Handbuch im Hilfe-Format (chm) abgelegt. So bekomme ich auf Wunsch einen guten Überblick über hunderte von PHP-Funktionen, die auch ein schusseliger Know-Ware-Autor nicht alle im Kopf haben kann.

Zur Übung: Ordner einrichten Genug der Vorrede. Zuerst bist du gefragt. Prüfen wir deine Windows- und HTML-Kenntnisse!

Hast du schon eine Homepage „gestrickt“? Wo legst du deine Daten auf der lokalen Festplatte ab? Nehmen wir mal an, dass deine Daten im Ver-zeichnis C:\home liegen.

Der Ordner C:\home ist dann das Root-Verzeichnis deines „Offline“-Webprojekts.

Falls dieser Ordner bei dir noch nicht vorhanden sein sollte, richtest du nun direkt unter deiner Fest-platte C: diesen Projektordner namens home ein. Dort erstellst du als Übung bitte einen weiteren Ordner namens phpkurs.

Wichtig: Richte dir den Projektordner phpkurs ein

Zum Verständnis: Der Ordner home ist weiterhin dein Start-Verzeichnis für dieses Projekt, dein „do-cument-root“.

WICHTIG! Ich empfehle die generelle Klein-schreibung von Ordner- und Dateinamen. Auf

gar keinen Fall solltest du Groß- und Klein-schreibung durcheinander bringen.

Erstelle eine Startdatei index.html! Erstelle nun als weitere Übung im Ordner home ei-ne HTML-Datei namens index.html (vierstellige Endung!). Schreibe etwas Informatives in die Seite hinein, z. B. <h1>Mein lokales Web ist aktiv</h1>

Test bestanden? Dann kann’s losgehen mit PHP!

HINWEIS: Solltest du spätestens an dieser Stelle aus-steigen, ist der Kurs evtl. noch etwas zu schwer. Tipp: Die Hefte „Homepages für Einsteiger“, „Homepages mit HTML und CSS“, „Windows XP für Einsteiger“ usw. bringen dich sicher auf Trab!

Johann

Lektion 2: Apache und PHP – Apache-HTTP-Server mit XAMPP

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

10

Lektion 2: Apache-Webserver und PHP einrichten Der Apache-HTTP-Server Auf in den Wilden Westen! Auch wir begeben uns auf den Kriegspfad. Nein, es geht nicht um den Kampf der „Rothäute“ gegen die „Bleichgesich-ter“. Wir „kämpfen“ mit der Installation des loka-len Apache-Webservers und mit der Einrichtung von PHP. Ich bin sicher, dass wir hinterher ge-meinsam die „Friedenspfeife“ rauchen werden.

Damit du die nächsten Beispiele auf deiner lokalen Festplatte „nachspielen“ kannst, musst du unbe-dingt einen Webserver und PHP installieren!

Hinweis für ganz Eilige! Du möchtest die Skripte gleich ausprobieren? Dein Dienstleister ist PHP-fähig? Dann kannst du die nächsten Schritte auch überspringen. Allerdings musst du die Dokumente stets auf den Server laden, bevor du sie testen kannst.

Apache: Installationsprobleme? Wenn du jetzt einen Schreck bekommen hast: Der Apache-Webserver ist kein großer Kasten, den du jetzt zusätzlich in deine Wohnstube schieben musst. Es handelt sich um ein kleines Open Source-Pro-gramm, welches du einfach auf deiner Festplatte in-stallierst.

Nach der herkömmlichen Methode müsstest du al-les einzeln herunterladen und nacheinander instal-lieren: Apachen, PHP, MySQL usw. Und nach je-der Installation werden unzählige Konfigurations-einstellungen von dir erwartet; das ist dann das reinste Gehangel durch gefährlich-kryptische Text-dateien.

Doch damit nicht genug. Schon der kleinste Ver-schreiber sorgt dafür, dass gar nichts geht.

Meine Kursteilnehmer, die Leser der vorigen Aus-gabe und ich sprechen hier aus „gequälter Erfah-rung“. Schluss damit, es gibt Besseres!

XAMPP Es gibt zum Glück ein ganz fabelhaftes Programm, welches alle diese Dinge ganz automatisch für dich installiert und (in 99% aller Fälle) auch korrekt ein-richtet. Du bekommst:

Apache-Webserver PHP und MySQL phpMyAdmin

(phpMyAdmin ist ein Tool zum Einrichten und Administrieren von MySQL-Datenbanken.)

Dieses wunderbare Installations-Paket nennt sich XAMPP und kann von www.apachefriends.org kostenlos heruntergeladen werden.

Welche Version du brauchst und wie du die instal-lierst, beschreibe ich ganz ausführlich in „PHP und MySQL auf der Homepage“. Studiere dort das Ka-pitel „Apache und PHP installieren mit XAMPP“ und richte dein System ein.

Dafür musst du dir das Heft nicht kaufen. Es genügt, wenn du die kostenlosen Probeseiten

von der KnowWare-Homepage herunterlädtst: http://knowware.de/?book=phpmysql

Funktioniert der Apache? Klappt bei dir alles? Tippe http://localhost/ in die Adresszeile des Browsers ein und drücke [¢].

Im Erfolgsfalle siehst du diese Seite

Übrigens bist du nicht auf http://localhost be-schränkt! Du kannst als Alternative auch http://127.0.0.1 tippen. Selbst die Eingabe http://Computername führt zum Ziel.

Ich habe mir zu dieser Seite ein Lesezeichen einge-richtet (Internet Explorer, Menü FAVORITEN), um stets den schnellen Zugriff auf „Localhost“ zu be-kommen.

Lektion 2: Apache und PHP – Die Funktion phpinfo()

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

11

So entsteht ein echtes Intranet! Du hast mehrere Computer miteinander vernetzt? Letztere „Computername-Methode“ gelingt auch in einem Netzwerk von anderen Rechnern aus.

Tippe http://Rumpel/, wenn die Webseiten auf Rumpel installiert sind.

Benutzer anderer Rechner können jetzt per HTTP (Webseiten anschauen) auf dein kleines Web zu-greifen. So ein eigener HTTP-Webserver ist schon ziemlich famos! Ideal für das Intranet!

Wo liegt die Startseite? Zurück zur Platzhalter-Startseite. Bis jetzt zeigt dir der Apache in Zusammenarbeit mit XAMPP eine eigene Test-Seite an. Diese liegt unter C:\xampp\htdocs

Funktioniert PHP? Nun bist du sicher neugierig, ob PHP auf deinem lokalen System gut funktioniert.

Neues PHP-Dokument erstellen Öffne deinen Texteditor und erzeuge ein PHP-Dokument. Dieses wollen wir info.php nennen (Endung php!) und gleich im Ordner htdocs (also unter C:\xampp\htdocs) ablegen.

Erzeugen durch Rechtsklick Meine Vorgehensweise lautet so: Ich klicke mit der rechten Maustaste in den Ordner, in dem ich das neue PHP-Dokument erstellen will. Dann wähle ich NEU/TEXTDATEI bzw. NEU/TEXTDOKUMENT (Windows XP).

Ein Symbol mit dem Platzhalternamen Neu Textdatei.txt (oder ähnlich) entsteht. Da der Name markiert ist, überschreibst du ihn einfach mit info.php.

Nach Druck auf [¢] meckert Windows und be-hauptet, die Datei würde möglicherweise un-brauchbar? Das ist natürlich Unsinn. Du willst trotzdem ändern und klickst deshalb auf JA.

Wenn alles geklappt hat, liegt nun die (leere) Text-datei info.php im Ordner htdocs.

Öffne diese Datei. Nach dem Doppelklick musst du ggf. die Zuordnung festlegen. Wähle im Dialogfenster

ÖFFNEN MIT das NOTEPAD bzw. den EDITOR aus. Lege fest, dass dieser Dateityp immer mit diesem Programm geöffnet wird.

Das ist dir zu anstrengend? Dann ziehe die Datei einfach in das geöffnete Editor-Fenster hinein!

Die Funktion phpinfo() Notiere nun folgenden HTML-Code. Der PHP-Teil besteht dabei lediglich aus dem Aufruf der in PHP eingebauten Funktion phpinfo(). <html> <head> <title>PHP-Info</title> </head> <body> <h1>Infos zu PHP</h1> <?php phpinfo(); ?> </body> </html>

Speichere das Dokument. Da es im Ordner htdocs (im Root) liegt, tippst du in den Browser ein: http://localhost/info.php

(Würdest du nur http://localhost/ tippen, wür-de die XAMPP-Startseite aufgerufen werden.)

Wenn alles klappt, müsste dieses oder ein ähnliches Bild erscheinen:

Glückwunsch! PHP 5.0.2 ist korrekt installiert!

Rolle das Dokument einmal durch. Du bekommst eine umfangreiche Auskunft über die installierte PHP-Version, die Serverumgebung, das Betriebs-system, die Pfade ... und die PHP-Lizenz.

Johann

Lektion 2: Apache und PHP – Editor-Tipp: Weaverslave

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

12

Editor-Tipp: Weaverslave Du merkst schon, dass zum Erstellen von PHP-Seiten keine weiteren speziellen Anforderungen ge-stellt werden. Ein einfacher Text-Editor als Ent-wicklungsumgebung genügt vollkommen.

Wer sich einmal mit Perl herumschlagen musste, weiß die enorme Arbeitserleichterung sicher zu schätzen. PHP ist total unkompliziert!

Aber vielleicht hast du schon einen bevorzugten Editor? Gerne kannst du unter Windows z.B. Ho-mesite, Ulis Phase 5, mein favorisiertes HTML-Kit, Allaires First Page 2000 oder auch den Editor Notepad benutzen.

Ich empfehle für PHP den Weaverslave von Thomas Weinert!

Der Weaverslave ist mehr als ein einfacher HTML-Editor. Das Programm ist schmal, genügsam und bietet gerade für PHP einige Zusatzfunktionen, die es bald unverzichtbar machen. Außerdem ist das Programm Freeware!

Weaverslave herunterladen Wo bekommst du den Weberknecht? Surfe zu www.weaverslave.ws und lade dir die aktuelle (Be-ta-)Version als „ZIP-Paket“ herunter, es sind nicht viel mehr als 1 MB. Entpacke alle Dateien in einen Ordner deiner Wahl, z. B. in C:\Programme\ Weaverslave. Du brauchst den Weaverslave nicht extra zu installieren. Ein Doppelklick auf die weaversl.exe (nach dem Entpacken) genügt. Du hast keinen Entzipper? Hole dir einfach das kosten-lose Programm 7-Zip (www.7-zip.org).

Lege dir eine Verknüpfung zur weaversl.exe auf den Desktop. Dazu ziehst du die Datei bei ge-drückter rechter Maustaste auf den Desktop (siehe Abbildung in der linken Spalte unten). Danach wählst du je nach Windows-Version VERKNÜPFUNG

HIER ERSTELLEN (bis Windows 2000) bzw. KOPIE-

REN (Windows XP).

Jetzt kannst du das Programm bequem über diese Verknüpfung starten.

Weaverslave einrichten Der Weaverslave ist in Deutsch und Englisch. Dir kommt trotzdem etwas „Spanisch“ vor? Wähle ggf. OPTIONEN/ALLGEMEIN. Gehe in den Bereich ALL-

GEMEIN und stelle DEUTSCH ein.

Schaue dich ruhig auch in den anderen Bereichen um. So kannst du im Bereich SYNTAX Schriftart und -größe justieren.

Wähle Datei/Neu und entscheide dich für eine Vorlage

Nützlich sind auch die über DATEI/NEU abrufbaren fix und fertigen HTML-Grundgerüste, von denen ich dir HTML 4 trans. ans Herz lege.

Ebenfalls pfiffig sind der integrierte Dateibrowser und vor allem das Syn-tax-Highlighting. Rich-te den Fokus einmal

auf HTML-, zum anderen auf PHP-Abschnitte in deinem Quelltext. Probiere es aus: Bei der Wahl von PHP werden HTML-Bereiche abgeblendet, bei HTML jedoch erscheinen PHP-Abschnitte „dun-kel hinterlegt“.

Ausführliche Erklärungen bekommst du in der über [F1] aufrufbaren Hilfe.

Lektion 3: Erste Schritte – Hinweise zur Notation

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

13

Lektion 3: Erste praktische Schritte mit PHP Nun soll es aber endlich losgehen mit PHP. In die-ser Lektion mache ich dich mit der PHP-Notation vertraut. Ich zeige dir, wie du ganz unkompliziert Daten ausgeben kannst.

Außerdem lernst du die fabelhaften Variablen und Arrays (Feldvariablen) kennen. Doch schön lang-sam, alles der Reihe nach!

Hinweise zur Notation Die PHP-Notation ist nicht weiter schwer. Die PHP-Codeschnipsel werden einfach innerhalb eines ganz gewöhnlichen HTML-Dokumentes notiert. An welcher Stelle spielt im Prinzip keine Rolle. Hauptsache du markierst, dass es sich um PHP-Code handelt. Wie? Ganz einfach!

Der Beginn eines PHP-Abschnitts wird durch <?php

eingeleitet. Am Ende notierst du ein ?>

Dabei handelt es sich um die Langform, die ich dir auch empfehle. Denn es gibt auch eine Platz spa-rende Kurzform:

<? PHP-Code ?>

Selbst an ASP-Umsteiger hat man gedacht:

<% PHP-Code %>

Attraktiveres Layout durch Style Sheet Wundere dich nicht über meine Beispiel-Dateien und -Abbildungen! Für ein attraktiveres Layout ha-be ich alle Dateien mit der externen Style-Sheet-Datei neu.css verbunden. Dabei färbte ich z.B. das <b></b>-Tagpaar rot ein.

Für schickes Layout sorgt die externe Style Sheet-Datei

Die wichtigsten Details zur Gestaltungssprache CSS erfährst du übrigens in meinem Heft „Home-pages mit HTML und CSS“.

Das erste Skript: Hallo Welt Hallo Welt! So lautet in der Regel das erste Skript in einer neuen Programmiersprache. Da auch wir mit dieser hübschen Tradition keinesfalls brechen wollen, präsentiere ich hier das berühmte Hallo-Welt-Skript in PHP!

Daten ausgeben mit echo Die folgende Codezeile gibt einen Text aus, der zu-sätzlich den Schriftzug „Hallo Welt“ ins HTML-Dokument schreibt. Zur Ausgabe der Daten bedie-nen wir uns hierbei der Sprachanweisung echo.

Begrüße die PHP-Welt mit einem kräftigen Hallo!

Erstelle also ein neues, noch leeres HTML-Do-kument, schreibe ein öffnendes <p>-Tag, dahinter ein schließendes </p>. Notiere innerhalb von <p></p> folgende Codezeile. <?php echo "Hallo Welt!"; ?>

Speichere das Dokument unter dem Namen hallo.php, am besten in einem extra Ordner phpkurs, den du dir flugs unter dem Ordner htdocs einrichtest. Einverstanden? Rufe nun das Dokument im Browser auf, also über

http://localhost/phpkurs/hallo.php.

Wenn alles geklappt hat, müsste jetzt der Schriftzug Hallo Welt im Browser erscheinen. Übrigens: Ob du den Text mit doppelten bzw. einfachen Gänse-füßchen umkleidest, ist hierbei noch egal. Ich schlage generell die doppelten vor, um nicht durcheinanderzukommen.

HTML-Tags innerhalb von echo Du möchtest das Wort Hallo fett formatieren?

Nimm die entsprechenden HTML-Tags und baue sie wie folgt ein: echo "<b>Hallo</b> Welt!";

Johann

Lektion 3: Erste Schritte – Hinweise zur Notation

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

14

Wie du siehst, lassen sich HTML- und PHP-An-weisungen wunderbar vermischen. Gerade das macht die Arbeit mit PHP so flexibel.

Semikolon für Zeilenabschluss Vielleicht fragst du dich: Wozu das Semikolon am Ende? Muss das sein? Jawohl, dieses Semikolon am Zeilenende ist Pflicht!

echo "<b>Hallo</b> Welt!";

Wie in C++, Java oder JavaScript musst du auch in PHP Codezeilen in der Regel durch ein Semikolon abschließen. Spätestens wenn dein Skript mehr als eine Zeile besitzt, hagelt es sonst Fehlermeldungen.

Häufiger Fehler: Abschluss-Semikolon vergessen

Wie bei jeder Regel gibt es auch Ausnahmen: Wird durch das Schlüsselwort function() eine Funktion definiert, musst du auf das Semikolon verzichten. Auch nach if, else, while, switch usw. ist z.B. kein Semikolon zulässig. Zumindest in letzteren Fällen mache ich dich rechtzeitig darauf aufmerk-sam. (Hinweis: Funktionen lernst du im Nachfol-geheft bzw. im Buch ausführlich kennen!)

In JavaScript dagegen kannst du ruhig die Semi-kolons weglassen, sofern du einen Zeilenumbruch setzt. In PHP funktioniert das nicht.

Ein vergessenes Semikolon führt in PHP unweigerlich zu einer Fehlermeldung!

Mehr Überblick durch Kommentare Ich rate dir: Arbeite mit Kommentaren! Schreibe auf, was eine bestimmte Codezeile macht.

Bei kurzen Skripten erscheint es dir vielleicht als überflüssig. Doch spätestens bei längeren Projekten weißt du nach Wochen oder Monaten nicht mehr, wofür eine bestimmte Zeile dient oder was gerade diese dreizehnte schließende Klammer zu sagen hat. Wetten?

Kommentarsyntax in PHP CSS- und JavaScript-Freunde kennen die Syntax. Ein kurzer Kommentar steht hinter dem doppelten Slash //. Mehrzeilige Kommentartexte werden einfach in /* ... */ eingehüllt. // Das ist ein kurzer Kommentar /* Dieser Kommentar kann über mehrere Zeilen gehen */

Da man auch an Perl-Umsteiger gedacht hat, ist auch folgende Kommentierweise möglich. Hier be-ginnt jeder Kommentar mit einem Gatterzeichen: # Kommentar in Perl (Unix)-Manier

Bei meinen längeren Beispielen zeige ich dir gele-gentlich kurze Kommentare. Außerdem gliedere ich meinen Code häufig durch zusätzliche Leerzei-chen bzw. sogar Leerzeilen. Auch das ist unkritisch, da diese Zeichen von PHP nicht ausgelesen werden.

Kommentare bzw. Leerzeichen/-zeilen beeinflussen den Programmablauf nicht.

Kommentarsyntax HTML Nur zur Wiederholung hier schnell noch die Kommentarsyntax für HTML.

Möchtest du in HTML kommentieren, setzt du ein <!--

Der Kommentar wird durch -->

oder //-->

beendet.

Geheimtipp: Auskommentieren Wozu sind Kommentare noch gut? Nutze Kom-mentare gezielt zur Fehlersuche!

Nach Ergänzung einiger Zeilen funktioniert dein PHP-Skript plötzlich nicht mehr? Kommentiere eine Zeile zur Probe aus. Kommentiere weitere Zeilen aus, bist du dem Problem auf die Schliche gekommen bist. Du kannst Kommentare auch dazu nutzen, alternative Zeilen „aufzubewahren“.

Lektion 3: Erste Schritte – Was sind Variablen?

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

15

Variablen als veränderbare Speicherstellen Nun zu den Variablen. Kaum eine Programmier-sprache kommt ohne diese „variablen Platzhalter“ aus. Klären wir zuerst, was sich hinter dem Konzept der Variablen verbirgt.

Was sind Variablen? Variablen sind Speicherstellen im Hauptspeicher des Computers. Stelle sie dir als Behälter vor, die für die Zeitdauer der Programmausführung zur Verfügung stehen. In diesen „Behältern“ kannst du für die Dauer der Ausführung des Skriptes Werte „aufbe-wahren“.

Stell dir Variablen als eine Art „Behälter‘‘ vor

Dabei ist es egal, ob es sich um Zahlen oder um Text (um so genannte Zeichenketten) handelt.

Im Zusammenhang mit Zeichenketten spricht man auch vom String.

Während der „Lebensdauer“ einer Variablen kannst du immer wieder auf die dort gespeicherten Werte zurückgreifen. Doch damit nicht genug: Werte in Variablen lassen sich auch verändern. Denke einfach an das Ergebnis einer Warenkorbberechnung. Mit jedem neuen bestellten Produkt erhöht sich dieses.

Aber auch Text „wächst“: So ist es durchaus mög-lich, dass eine Variable anfangs nur ein Wort enthält doch zum Schluss den Text einer ganzen HTML-Seite beherbergt.

Datentypen der Variablen Zwei „Datentypen“ hatte ich schon erwähnt. Es gibt zum einen Strings und zum anderen Zahlen. Große Programmiersprachen wie C++, Visual Basic oder Java untergliedern das Ganze jedoch weitaus genauer.

Da gibt es je nach Sprache neben String auch Integer (Ganzzahl), Boolean (Wahrheitswert), Byte (Ganzzahlen von 0-255), Float (Komma-zahlen), Double, Date, Currency, Variant usw. usf.

Jede Variable muss man am Anfang (beim De-klarieren) penibel einem bestimmten Datentyp zu-ordnen. Wenn man so eine Sprache lernt, bekommt man schon am Anfang die große Krise.

Unser Kurs bleibt krisenfrei! Zum Glück ist PHP eine einfache Skriptsprache, die nur für das Web geschrieben wurde. Alles Unwesentliche haben die Entwickler weggelassen. Im Klartext: In PHP musst du dich nicht um den Datentyp kümmern. Datentypen werden automatisch erkannt und zu-gewiesen. Genau wie JavaScript (das in der Regel auch nur im Web Sinn macht) ist PHP eine Sprache mit „Loose Typing“.

Nur zur Information: PHP arbeitet intern immer-hin mit den Datentypen String (Text), Integer (Ganzzahl), Float (Kommazahl) bzw. true/false (Wahrheitswert). Und noch eine Information für JavaScript-Kenner: Variablen müssen nicht extra deklariert werden. Sobald du eine Variable das erste Mal benutzt (initialisierst), gilt sie als deklariert.

Erlaubte Variablennamen Wie sehen diese Variablen eigentlich aus? Zuerst gilt: Jeder Variablenname muss – ganz im Ge-gensatz zu JavaScript und Co. – unbedingt mit ei-nem Dollarzeichen beginnen ($). Den Rest darfst du dir selber ausdenken. Verwende z.B. $Name als Platzhalter zur Speicherung eines Namens.

Verzichte auf Umlaute, Leer- und Sonderzeichen. Beachte, dass zwischen Groß- und Kleinschreibung unterschieden wird, dass also $Name und $name un-terschiedliche Variablen sind! Bestimmte für PHP reservierte Wörter wie while, if, switch usw. darfst du ebenfalls nicht als Variablennamen ver-wenden. Beginne nicht mit einer Zahl.

Der Unterstrich (_) ist erlaubt und dient oft als Ersatz für das verbotene Leerzeichen.

Johann

Lektion 3: Erste Schritte – Hallo Hans ... ein praktisches Beispiel!

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

16

Hallo Hans ... ein praktisches Beispiel! Wie wär’s mit einem praktischen Beispiel? Erstelle ein Dokument namens variable1.php. Notiere hier das Grundgerüst eines HTML-Dokuments (oder wähle in Weaverslave NEU/DATEI und entscheide dich für einen Eintrag.)

Der in der Variablen gespeicherte String wird im Browser als HTML ausgegeben

Erstelle einen Absatz. (Das ist zwar nicht zwingend notwendig, doch nach dem neuesten HTML-Standard muss jeglicher Text innerhalb eines Blockelements stehen). Binde nun folgende PHP-Zeilen innerhalb dieses Absatzes ein: <?php $Name = "Hans"; echo "Hallo <b>$Name</b>, herzlich willkommen!"; ?>

Rufe das Dokument im Browser auf. Wenn alles geklappt hat, müsste der Text Hallo Hans, herzlich willkom-men! im Browser erscheinen. Wichtig zu wissen: Diesmal muss die Passage nach echo unbedingt in doppel-ten Gänsefüßchen stehen. Denn nur so sucht PHP nach Variablen und wertet deren Inhalt aus!

Was machen diese beiden Zeilen? In der ersten Codezeile wird die Variable initialisiert, sie wird mit der Zei-chenkette Hans „gefüttert“. Die zweite Zeile gibt schließlich den Inhalt der Variablen in etwas netter ver-packter Form aus.

Merke dir: Die mit Inhalt zu füllende Variable steht links. Das Istgleich-Zeichen wird Zuweisungsoperator genannt. In Gänsefüßchen steht die Zeichenkette, welche wir in der Variablen sichern.

Strings werden stets innerhalb von Gänsefüßchen notiert.

Wenn du einen Zahlwert in einer Variablen sichern möchtest, darfst du natürlich keine Gänsefüßchen schreiben. Im Beispiel ist es aber eine Zeichenfolge, also eine Variable vom Typ String.

Aber wie schon erwähnt, die Datentypen müssen uns an dieser Stelle überhaupt nicht stören. PHP ist sogar fähig, z.B. Zahlen (die du aus Versehen doch in Gänsefüßchen gekleidet hast) automatisch vom Typ String in einen der beiden Zahlentypen umzuwandeln. Und umgedreht.

Müssen Strings und Variablen verkettet werden? Kannst du schon JavaScript (oder andere Programmiersprachen)? Dann wirst du an dieser Stelle vielleicht laut protestieren und fragen: Wo bleibt denn der Verkettungsoperator bei der Ausgabe durch echo? Denn norma-lerweise muss man Zeichenfolgen (die Teile in Gänsefüßchen) und die Variablen miteinander verketten. In JavaScript wird dafür der Verkettungsoperator + verwendet, (was immer wieder zu Problemen führt, da das +-Zeichen gleichzeitig auch als Additions-Operator dient).

Lektion 3: Erste Schritte – Der Verkettungsoperator Punkt (.)

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

17

Wie gesagt, PHP ist einfach! Die Antwort auf die Frage von oben lautet: In der Regel nicht. In PHP ist das umständliche Verketten von Variablen mit Zeichenketten oft nicht mehr erforderlich. Das ist eine enorme Arbeitserleichterung im Vergleich zu JavaScript.

Der Verkettungsoperator Punkt (.) Wie erwähnt, in der Regel ist das Verketten von Zeichenfolgen und Variablen nicht erforderlich. Du kannst den Verkettungsoperator verwenden, musst es aber nicht.

Allerdings gibt es zu jeder Regel Ausnahmen, bei denen du den Verkettungsoperator doch benötigst, bei-spielsweise bei der Rückgabe von Werten aus Funktionen oder Arrays. Wohlweislich hat man in PHP einen einfachen Punkt gewählt (.), und kein Pluszeichen. Damit du die Syntax an dieser Stelle schon einmal ken-nen lernst, zeige ich dir das „Hallo-Hans-Skript“ nun in der etwas „umständlicheren“, verketteten Variante. Dann sieht es so aus: <?php $Name = "Hans"; echo "Hallo <b>" . $Name . "</b>, herzlich willkommen!"; ?>

Das Resultat ist exakt das gleiche. Vergleiche mit der Datei variable2.php aus dem Ordner lektion3. Ei-nen ersten echten „Einsatzfall“ für den Verkettungsoperator zeige ich dir auf Seite 26 im Zusammenhang mit einer Funktion.

Ich habe einen Fehler gemacht … Gib es schon bei diesem kleinen Beispiel einen Fehler? Hier eine kleine Checkliste:

Hast du jede Zeile mit einem Semikolon abgeschlossen? Hast du den Variablennamen auch wirklich mit einem Dollarzeichen ($) begonnen, und nicht mit einem

Paragraphzeichen (§) oder dem Prozentzeichen (%)? Hast du die Gänsefüßchen richtig gesetzt? Und überhaupt: Hast du das Dokument wirklich im Browser über http://localhost usw. aufgerufen

bzw. auf den Server deines PHP-fähigen Dienstleisters überspielt und dann überprüft? Denn das „norma-le“ Aufrufen aus Weaverslave heraus wird nicht funktionieren, da ja der PHP-Interpreter dazwischenge-schaltet werden muss.

Download der Beispieldateien Apropos Fehler. Keine Lust zum Abschreiben? Oder du findest einfach nicht die Stelle, wo das Problem sitzt? Du kannst dir alle Beispiele aus dem Web herunterladen. Surfe einfach zur Serviceseite für dieses Heft www.knowware.de/?book=php5 und lade dir die Dateien herunter. Als Windows-Freund nimmst du ein-fach das selbstentpackende Archiv (Exe-Datei). Dann entpacken sich alle Beispiele automatisch in ganz be-stimmte Unterordner, die unter C:\home\phpkurs entstehen. Ich habe die Dateien jeweils nach Lektion ge-ordnet. So findest du die bisherigen Beispiele in den Ordnern lektion2 und lektion3.

(Deine eigenen Dateien legst du in diesem Kurs jedoch am besten weiterhin unter htdocs/phpkurs ab.)

Break und Zeilenumbruch, was ist der Unterschied? Es gibt den Breakdance, das Brechfasten (breakfast) und den break. Letzterer wird gerne in HTML verwen-det und sorgt dafür, dass ein Zeilenumbruch entsteht. Und zwar als Zeilenumbruch im Browserfenster.

PHP wiederum kennt auch eine Art „break“, der jedoch als new line bezeichnet wird. Wir schauen uns beide „Brechmittel“ einmal an und finden den Unterschied.

Johann

Lektion 3: Erste Schritte – HTML-Break <br> versus PHP-new line \n

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

18

HTML-Break <br> versus PHP-new line \n Wir brauchen ein Beispiel zum Experimentieren. Dafür empfehle ich unser „Hallo-Hans-Skript“ in der ers-ten, „verkettungsfreien“ Fassung. Speichere das Dokument bitte unter dem Namen umbruch1.php. Nimm folgende Ergänzung vor (Fettdruck): <?php $Name = "Hans"; echo "Hallo <b>$Name</b>, herzlich willkommen!<br>"; echo "Toll, dass Sie uns besuchen!"; ?>

Nichts Abenteuerliches ist passiert. Wir haben in die erste Zeile einen HTML-Umbruch (<br>) eingefügt und eine zweite echo-Zeile ergänzt. Wie erwartet sieht das Ergebnis im Browser folgendermaßen aus:

Durch das Tag <br> wird eine neue Zeile im Browserfenster begonnen

Und nun wirf bitte einmal einen Blick in den HTML-Quelltext. Dazu wählst du im Internet Explorer ein-fach ANSICHT/QUELLTEXT.

Im Quelltext im Hintergrund findet jedoch kein Zeilenumbruch statt

Wie du merkst, findet im Hintergrund kein Zeilenumbruch statt. Das ist bei zwei Zeilen noch nicht tra-gisch. Doch spätestens bei häufigem Einsatz der echo-Anweisungen entsteht im Hintergrund eine Endlos-Zeile.

Der Befehl new line \n Um das zu verhindern, bedient man sich des Befehls new line, der in PHP folgendermaßen notiert wird: \n

Überzeuge dich! Ändere bitte das Skript aus umbruch1.php wie folgt: <?php $Name="Hans"; echo "Hallo <b>$Name</b>, herzlich willkommen!<br>\n"; echo "Toll, dass Sie uns besuchen!\n"; ?>

Speichere unter dem Namen umbruch2.php ab. Rufe das Dokument auf. Im Browser wirst du keinen Un-terschied zur vorherigen Version merken. Erst der Quelltext enthüllt den Unterschied:

Lektion 3: Erste Schritte – Profiwissen: Das Escape-Zeichen \

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

19

Jetzt findet auch „hinter den Kulissen‘‘ ein Zeilenumbruch statt

Beachte, dass vor dem n (wie new line) ein Backslash notiert wird. Schreibe das n ohne Leerzeichen an den Backslash heran.

Profiwissen: Das Escape-Zeichen \ Interessant! Jetzt hast du das Escape-Zeichen gleich mit Sonderbedeutung kennen gelernt. Es gibt noch mehr Möglichkeiten. Hier eine Übersicht:

Escape-Zeichen \n \r \t Erklärung erzeugt neue Zeile „Wagenrücklauf“ erzeugt zusam-

men mit \n neue Zeile in E-Mails erzeugt Tabulatorschritt (Sprung)

Abgesehen davon dient das „Escape-Zeichen“ auch zum Maskieren bestimmter Sonderzeichen, die du sonst nicht ausgeben könntest.

Gänsefüßchen und andere Sonderzeichen maskieren Du möchtest in deinem Skript den Namen in Gänsefüßchen ausgeben? Normalerweise signalisieren Gänse-füßchen, dass ein String beginnt oder endet. Also sind sie eigentlich verboten. Erst wenn du die Gänsefüß-chen folgendermaßen „maskierst“, werden sie korrekt angezeigt:

echo "Hallo \"<b>$Name</b>\", herzlich willkommen!<br>";

Du findest das Beispiel unter dem Namen escape.php.

Bestimmte Zeichen wie das Anführungszeichen, das $-Zeichen oder der \ selbst müssen maskiert werden

Maskiere auch einfache Anführungszeichen ('), das Dollar-Zeichen ($) oder den Backslash (\), falls du diese Zeichen per echo als HTML ausgeben willst. Das gilt aber nur, wenn die umfassenden Anführungszeichen auch einfache sind wie in dieser Passage: echo ' Willi\'s Bar'; Im nächsten Beispiel ist der Backslash da-gegen überflüssig und wird daher auch mit angezeigt: echo " Willi\'s Bar";

Johann

Lektion 3: Erste Schritte – Arrays in der Langform

© Johann-Christian Hanke: PHP 5 leicht & verständlich - 13.09.2005 - 3:39

20

Variablentyp Array: Feldvariablen bzw. Wertelisten Die Variablen sind ja gut und schön. Doch was macht man, wenn man mehrere Werte in einer ein-zigen Variablen speichern möchte? Und wenn diese Werte irgendwie zusammengehören?

Dann nimmt man die praktischen Arrays, auch als Datenfelder oder Wertelisten bezeichnet.

In PHP kannst du – übrigens genau wie in JavaScript – mit einer Langform und einer

Kurzform arbeiten.

Zusätzlich gibt es in PHP die assoziativen Arrays, und das ist eine ganz schicke Sache! Dazu später mehr!

Hinweis: Das Wort Array wird ä-‘räi ausgespro-chen. Sprich das erste „ä“ kurz, die Betonung liegt auf der letzten Silbe.

Arrays in der Langform Was gehört zusammen? Halten wir doch einmal die Wochentage in solch einer fabelhaften Werteliste fest. Zuerst zeige ich dir die Langform.

Arrays bestehen – der Begriff Werteliste sagt es schon – aus mehreren Werten. Diese werden von PHP intern durchgezählt. Der entsprechende Zäh-ler nennt sich Index-Wert oder auch Schlüssel (key). Der key (Zähler) beginnt in der Vorein-stellung stets bei 0. Das ist in den meisten Pro-grammiersprachen der Fall und stiftet oft Ver-wirrung. Merke es dir!

Der erste Wert in einem Array trägt per Vor-einstellung die Index-Nummer 0.

Wie wäre es mit einem neuen Beispiel? Meine Musterdatei heißt wochentage1.php. Das Schöne an der Langform ist, dass sowohl Index-Wert als auch Variablenwert jeweils in einer eigenen Zeile aufgeschrieben werden. Das erhöht die Übersicht. Gleichzeitig gebe ich einen Wert aus dem Array aus. Dazu bedient man sich folgender Syntax: $Variable[Indexwert]

Heißt die Variable $tag? Dann kann ich den vier-ten Wert folgendermaßen ermitteln: $tag[3]

Hier nun der PHP-Teil für die „Wochentage“: <?php $tag[0] = "Sonntag"; $tag[1] = "Montag"; $tag[2] = "Dienstag"; $tag[3] = "Mittwoch"; $tag[4] = "Donnerstag"; $tag[5] = "Freitag"; $tag[6] = "Samstag"; // Nur den Mittwoch ausgeben echo $tag[3]; ?>

Skript ausprobieren Und so sieht das Ergebnis im Browser aus. Der dritte Tag der Woche ist eigentlich der vierte. Denn Sonntag entspricht dem Indexwert 0.

Alle Wochentage sind in einer Variablen gespeichert

Arrays in der Kurzform Cut it short! Oder: Make it snappy. Wie auch im-mer: Die Kurzform sieht folgendermaßen aus. Wer sich z. B. in JavaScript auskennt, merkt, dass hier die gleiche Syntax verwendet wird: <?php $tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); // Den Sonntag ausgeben echo $tag[0]; ?>

Nach dem Schlüsselwort array folgt in runden Klammern die Werteliste. Alle Werte werden durch Komma voneinander getrennt. Die Zuweisung der keys (Indexierung) erfolgt automatisch. Der grau schattierte Teil ist normalerweise eine Zeile. Wenn du sie umbrichst, dann nur nach dem Komma. Vergleiche mit der Datei wochentage2.php aus lektion3.

Johann

Recommended