Montag, 9. März 2009

Die Variablen

So, endlich geht’s richtig los. Variablen sind das Hauptwerkzeug eines Programmierers. In Variablen speichert man Werte. Entweder Text oder Zahlen oder beides. Einfach alles, mit dem man später irgendetwas anstellen will. Ich vergleiche Variablen einfach mal, um bei unserem Browsergame-Beispiel zu bleiben, mit unserem Helden. Dieser Held hat einen Rucksack auf, in dem er die Sachen, die er braucht, mit sich herumträgt. Er kann den Rucksack leeren, was dazupacken oder ganz abnehmen (=die Variable löschen).
Ein PHP-Script kann beliebig viele Variablen enthalten. Allerdings muss man wissen, dass jede Variable Arbeitsspeicher benötigt. Es ist also immer besser, möglichst wenige Variablen zu verwenden. Aber zu knauserig zu sein bringt natürlich auch nichts.
Wie man die beliebig vielen Variablen benennt ist übrigens auch (fast) egal. Die Namen der Variablen kann man sich zwar ausdenken, aber folgende Regeln muss an zwingend beachten.

-Eine Variable beginnt IMMER mit einem $
-Eine Variable darf nie mit einer Zahl beginnen.
-Eine Variable muss IMMER mit einem Buchstaben oder mit einem _ beginnen (nach dem $)
-Bei Variablen wird zwischen Groß- und Kleinschreibung unterschieden. Daher verwendet man bei Variablen der Einfachheit halber NUR Kleinbuchstaben
-Um Problemen mit seltsam konfigurierten Webservern vorzubeugen empfielt es sich, in den Variablen-Namen keine Umlaute wie ä ö ü ß zu verwenden.

Ein letzter Hinweis zur Benennung der Variablen: Variablen dürfen jeden Namen tragen den Du Ihnen gibst, solange dieser Name nicht der Name einer bereits bestehenden Funktion von PHP ist.
Du dürftest Deine Variable also zum Beispiel nicht
Eine richtig aufgebaute Variable sieht also so aus:
$klugheit

Wir haben hier das vorgestellte $ danach geht es mit kleinbuchstaben weiter.

Eine falsche Variable wäre das hier:
$4you

Hier haben wir zwar das $ aber eine Zahl als erstes Zeichen.

Genauso macht es einen Unterschied ob man $Klugheit oder $klugheit schreibt. Das sind 2 verschiedene Variablen.

Es empfielt sich, Variablen immer passend zu benennen. Wenn man seine Variablen mit $variable1 bis $variable25 benennt verliert man, wenn man nach ein paar Wochen mal wieder im Script was verändern will, total den Überblick.
Bei unserem Browsergame empfielt es sich also, die Variablen zum Beispiel $klugheit und $koerperkraft und $geschicklichkeit zu benennen. Da weiss man halt einfach immer, was gemeint ist.

PHP verwenden: Die Werkzeuge

Um PHP zu programmieren und zu nutzen benötigt man nur einen Webserver mit PHP-Parser.
Ich empfehle für die Heimanwendung das Programm XAMPP. Das muss man einfach herunterladen, installieren und über xampp_start.exe starten.
Die PHP-Scripte kommen dann in das Unterverzeichnis „htdocs“ und sind im Browser z.b. über http://localhost/script.php erreichbar.
Eine andere Möglichkeit ist, sich eine Domain mit Webhosting zu holen. Man muss hier nur darauf achten dass PHP erlaubt ist und eine MYSQL-Datenbank (für später) dabei ist.
Bei der Domain-Lösung benötigt man noch ein FTP-Programm um die Scripte hochzuladen (->WSFTP)
Zum programmieren an sich benötigt man eigentlich nur Notepad. Word oder Openoffice eignet sich zum programmieren nicht wegen der Auto-Formatierung.
Meiner Erfahrung nach sind die Scripte im Notepad allerdings recht unübersichtlich. Ich bevorzuge daher den Macromedia Dreamweaver, damit kann ich sowohl html-Seiten als auch PHP-Seiten erstellen. Und Macromedia hat eine nette Farbeinfärbung. Es gibt aber auch diverse PHP-Editoren, da muss man sich einfach mal durch die diversen Freeware-Seiten wühlen und austesten.

Rudimentäre php-Grundkenntnisse

Wenn Du nun die beiden Beispiele von 1.2 miteinander vergleichst wirst Du feststellen, dass dieser Teil der Unterschied ist:
echo „Hallo Robert“;
?>

Das für sich genommen ist eigentlich schon ein kleines PHP-Script.
PHP wird von einem Parser in html umgeschrieben. Daher muss dieser (eigentlich dumme) Parser wissen, wo das HTML aufhört und wo das PHP anfängt. Daher hat man festgelegt dass das Zeichen
dem Parser sagt: „Hey, hier musst du mit dem PHP anfangen.“
Genauso sagt das Zeichen
?>
dem Parser: „Hey, hier is das PHP zuende und ab danach geht das HTML weiter.
Der Befehl echo gibt, wie Du dir sicher schon gedacht hast, einfach nur den Text aus, der zwischen dem echo und dem ; in Hochkommas steht.
PHP kümmert sich übrigens nicht um Zeilenumbrüche. Wie gesagt, der Parser ist ja eigentlich dumm. Und so ist für ihn immer nach einem ; eine Zeile zuende.
Man könnte also ein PHP-Script in 1 Zeile durchschreiben. Wär aber extrem unübersichtlich.
Wenn man das ; am Ende der Zeile weglassen würde, also das ganze so schreiben würde:
echo „Hallo Robert“
?>
dann würde sich der Parser nicht mehr auskennen und einen Fehler ausgeben. Wenn man also die HTML-Seite aufrufen würde, so würde einen nicht „Hallo Robert“ begrüßen sondern ein unschönes

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampplite\htdocs\test.php on line 9

Klingt kryptisch und blöd, ist aber ganz einfach. Und nachdem man diesen Teil 1000 mal gesehen hat (und so oft wirst du sowas mindestens sehen) hat man sich dran gewöhnt.
Am wichtigsten ist eigentlich der letzte Teil „on line 9“.
Denn hier sagt der Parser, wo der Fehler ist. Die Zeilenangabe bezieht hier die HTML-Teile auch mit ein. Daher ist die Zeile 9 natürlich diese:
echo „Hallo Robert“

obwohl beim PHP-Teil es ja die einzige und erste Zeile ist.
Man sieht auch noch dass der Fehler in test.php ist. Da weiß man gleich, wo man suchen muss.
Der Rest
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in
ist meistens wenig aussagekräftig und meiner Erfahrung nach nur in Ausnahmefällen so hilfreich, dass man gleich das weiss was man falsch gemacht hat.
Bis man soweit ist auf 1 Blick zu sehen was falsch ist muss man halt einfach probieren und suchen. Sinnvoll ist es auch, 1 Zeile drüber und drunter zu gucken ob da nicht vielleicht ein ; oder ein „ fehlt (zb bei einem echo).
Alle Dateien oder Webseiten, in denen PHP-Code vorkommt müssen übrigens die Endung .php haben. Denn der Parser bearbeitet nur Seiten mit .php

Freitag, 6. März 2009

Der Unterschied zwischen PHP und HTML

PHP ist nur eine Ergänzung bzw. eine Erweiterung von HTML. HTML ist die Programmiersprache, in der alle Webseiten verfasst sind. HTML ist, wenn man so will, ein Buch. Der Buchrücken mit Cover und Schluss-Einband und die leeren Seiten. PHP füllt diese Seiten dann mit Inhalt.Dieses Tutorial kann nicht das gesamte Wissen von HTML vermitteln. Dazu empfehle ich das hervorragende SELFHTML. Trotzdem werde ich aber ein paar HTML-Sachen noch kurz durchgehen.

Eine einfache HTML-Seite sieht so aus:

<html>

<head>

<title> Der Seitentitel

</title>

</head>

<body>

<center>

Hallo Robert

</center>

</body>


</html>


Das ist eine ganz normale und einfache HTML-Seite. Wie man sieht gibt es immer ein öffnendes und ein schliessendes Tag. Eine HTML-Seite besteht aus Head, der Überschrift. Hier steht zum Beispiel der Titel (<title>). Man könnte aber auch Anweisungen für die Suchmaschinen-Bots hier einschreiben und festlegen, ob diese Webseite gespider (also von Google durchsucht) werden soll oder nicht.

Der Body ist das, was der Browser dann anzeigt. Dieses einfache Beispiel würde eine weisse Seite mit Schwarzer Schrift zeigen wo nur „Hallo Robert“ steht.

Wenn wir nun dieses einfache HTML-Seite mit PHP kombinieren wollen würden, würde das so aussehen:

<html>

<head>

<title> Der Seitentitel

</title>

</head>

<body>

<center>

<?

echo „Hallo Robert“;

?>

</center>

</body>


</html>


Wenn Du nun denkst: „So ein Blödsinn, das Hallo Robert hat der Typ doch in der oberen Version auch normal reingeschrieben“ so hast Du natürlich recht. Interessant wird es aber, wenn ich vorher den Namen abgefragt oder gespeichert habe und so nun jeden Besucher in meinem Browsergame mit seinem eigenen Namen begrüßen kann. Oder wenn ich weiß dass Robert sein Browsergame gern in einer schwarzen HTML-Seite spielt statt in einer weißen könnte ich nur für ihn den Hintergrund auf schwarz umfärben.

Was ist PHP

Wie gerade schon erwähnt ist PHP eine sehr einfache Programmiersprache. Die Kunst bei PHP ist einfach die gute und sinnvolle sowie performante Verwendung der gegebenen Mittel. Bei PHP führen sehr viele Wege zu einer Problemlösung. Aber nur 1 Lösung wird performant, einfach UND übersichtlich in einem sein.

PHP-Scripte laufen serverseitig ab. Das heisst: Man programmiert ein Script, dieses legt man auf einem Webserver ab. Wird dieses PHP-Script nun aufgerufen, setzt der PHP-Parser nach den Anweisungen, die man in PHP programmiert (also festgelegt) hat die Webseite fertig zusammen und schickt sie an den Browser des Users.
Für unser Browsergame heisst das, dass alles am Server berechnet wird. Kein Spieler hat also die Möglichkeit, durch Manipulation seines Browsers oder seines eigenen Computers zu betrügen, weil sein eigener Browser lediglich die fertige HTML-Seite ohne etwas zu tun entgegennimmt.

Über das PHP-lernen -Tutorial

Kurz eines vorweg: PHP ist eine Programmiersprache, die sich hervorragend dafür eignet, Webseiten damit aufzubauen bzw. zu verwalten. Sie ist einfach zu lernen und bei richtiger Anwendung in Kombination mit einem leistungsstarken Server sehr performant.
Zudem kann man mit PHP sehr schnell gute Ergebnisse erzielen. Kritiker von PHP sprechen von einem Frickelwerkzeug. Das liegt daran, dass PHP sehr großzügig ist. PHP verzeiht viele logische Fehler und funktioniert im Vergleich zu C oder c++ oder Delphi (oder früher Kobald und Pascal) auch, wenn man eigentlich nicht weiß was man da treibt.
Gutes programmieren in PHP erfordert jedoch auch eine große Selbstdisziplin und viel Kreativität.

Ich wickle zum Beispiel über einen Quadcore-Server mit 2 GB RAM locker 2 Millionen Seitenaufrufe mit Daten aus einer 10 GB großen MYSQL-Datenbank ab.

Soviel zum groben Vorwort.

Es gibt viele Möglichkeiten, PHP zu lernen. Bücher über PHP gibt es bei Amazon genug und ich maße mir nicht an, besser zu sein als die anderen Autoren.

Ich habe jedoch nie ein PHP-Buch gelesen, da mir die bestehenden Bücher anno 2000 zu trocken und zu wenig praxisbezogen waren. Ich habe damals einfach die PHP-Funktionen von php.net auswendig gelernt und selbst damit herumgespielt.

Ich werde daher in meinem Tutorial einen anderen Weg gehen, jemandem PHP beizubringen.

Ich werde alle Teile des PHP-Tutorials an einem Beispielprojekt erklären. Das Ziel dieses Tutorials ist also, dass am Schluss jeder, der dieses Tutorial aufmerksam gelesen hat, dieses Beispielprojekt nachprogrammieren kann.

Als Projekt habe ich mich für ein kleines Browsergame entschieden.Man soll sich registrieren können, einen kleinen Helden erschaffen können und mit diesem gegen andere Gegner kämpfen können und so seine Fähigkeiten verbessern können.

Viele Sachen die dazu notwendig sind werde ich erst in späteren Kapitel erklären können, es wird meiner Meinung nach jedoch praxisorientierter sein, wenn man weiss, wozu man das ganze überhaupt braucht.