Dynamische Webseiten:
Programmierung eines Browsergames mit HTML, PHP und MySQL/
Einstieg in HTML, PHP und MySQL

ISBN-Nr.: 9783837066111, Verlag: BoD, Autor: M. Schuchmann



Downloads:
 
Download Bemerkung
Beispiele aus Kapitel 4.5  
Beispiele aus Kapitel 4.6 Mit SQL-Kap4-6.TXT kann z.B. über PHPMyadmin die Datenbank und die
Tabelle für diese Beispiele angelegt werden.
Beispiele aus Kapitel 4.8/4.9 Hier sind auch die Grafiken (schiff.png und hintergrund.png) enthalten,
die bei den Beispielen aus den Kapiteln 4.8.1 und 4.8.2 benötigt werden.
Beispiele aus Kapitel 4.10/5  
Einfaches Forum Falls ein Forum mit zusätzlichen Rubriken (die ein Administrator definieren kann) und
Admin-Bereich benötigt wird, so kann dieses hier herunter geladen werden. Das
Admin-Passwort steht in db.php. Das Forum findet man auch unter forum.galaxieswar.de.

Wichtig zur Verbindung mit der MySQL-Datenbank:
Ab der PHP Version 7 steht mysql_connect (und allgemein die Funktionen mysql_...) nicht mehr zur Verfügung. Die neuen Erweiterungen
sind: MySQLi (hier können einige der bekannten Funktionen mysql_... in der Form mysqli_... verwendet werden) oder PDO_MySQL.
Bei der Verwendung der Programme zu den Kapiteln 4.5, 4.6 und 5 aus dem Buch sollte deshalb eine PHP Version bis 5.5 verwendet
oder es können auch die PHP-Befehle/Funktionen bzgl. MySQL angepasst werden (die geänderten Beispielprogramm sind hier zu finden):

mysql_select_db("Datenbank") existiert somit nicht mehr und mysqli_select_db("Datenbank") benötigt man jetzt nur noch zum Wechsel
der Datenbank, denn nun wird die Datenbank gleichzeitig mit mysqli_connect ausgewählt:

$link=mysqli_connect("localhost","Benutzer","Passwort","Datenbank");
$SQL="select ...";
$Ergebnis= mysqli_query($link,$SQL);
(Hier muss nun immer der Link mit angegeben werden!)

Eine Dantenzeile wird dann wie vorher, nur anstatt mit mysql_... mit mysqli_..., übergeben:

$Zeile = mysqli_fetch_array($Ergebnis);

Hier wurden alle Beispiele von oben (aus den Kapiteln 4.5 bis 5) auf MySQLi umgestellt:
Kap4-5-mit-MySQLi.zip


Zusätzliche Beispiele zu PHP/MySQL:

Hier findet ihr noch ein PHP-Beispiel, bei dem 6 Zahlen aus 49 zufällig gezogen werden (wie beim Lotto) und
hier noch mehr Beispiele zu PHP und MySQL. Neben den Beispielen wird hier auch beschrieben, wie man
das root-Passwort in MySQL ändern kann. Außerdem ist hier ein einfaches Black Jack Spiel zu finden, sowie
das Black Jack Spiel von der galaxieswar-Seite (Special Black Jack).


Änderung bei PHP (relevant bei älteren Auflagen):
1) Die aktuelle PHP-Version erlaubt keine Short-TAGS mehr. D.h. der PHP-Code innerhalb einer Seite muss nun immer
mit "<?php" beginnen und man kann nicht mehr kurz "<?" schreiben, andernfalls wird der PHP-Code nicht ausgeführt!
(Die Ursache ist: In der php.ini steht nun
"short_open_tag = Off", statt wie zuvor "short_open_tag = On".)
2) Bei den aktuellen XAMPP-Paketen (bzw. ab PHP 5) werden bei PHP-Programmen Benachrichtigungen des
Laufzeitsystems ausgegeben, wenn z.B. eine Variable nicht mit einem Wert belegt wurde, auch wenn das Programm
sonst einwandfrei läuft.
Beispielsweise ist dies der Fall, wenn vom Programm her vorgesehen ist, dass eine Variable optional mit get übergeben
werden kann, diese aber nicht gesetzt wurde. Dann wird eine Meldung mit der Zeilennummer ausgegeben, in der $_GET
steht. Alle Warnungen und Meldungen kann man generell mit der Zeile error_reporting(0); am Anfang eines Programms
bzw. Skripts abschalten. Zum Abschalten der beschriebenen Benachrichtigung des Laufzeitsystems genügt auch die
Zeile error_reporting(E_STRICT); Wenn man diese Meldungen prinzipiell umgehen möchte, muss man
bei jeder "optionalen" Variable - die übergeben wird - mit isset prüfen, ob diese auch gesetzt wurde (falls die Variable
z.B. $nr heißt, könnte man dies mit der Zeile if(isset($_GET["nr"])) {$nr=$_GET["nr"];} else {$nr=0;} tun).
Siehe hierzu ein Beispiel.


Hier kannst du die Dateien für das Singleplayer und Dualplayer-Game herunterladen (Beschreibung):

Singleplayer-Game ZIP
Dualplayer-Game ZIP 

N
achdem XAMPP installiert wurde, kann man diese direkt in das htdocs Verzeichnis entpacken lassen!
Mit enthalten ist außerdem die SQL-Syntax zur Erstellung der Tabelle (sql.txt). Die Tabelle für das
Singleplayergame (score) bzw. Dualplayergame (score2) muss jeweils in der Datenbank bgame angelegt werden.
Dazu muss zuvor die Datenbank angelegt worden sein. Falls nicht vorhanden, über PHPMyAdmin (SQL-Befehl:
"CREATE DATABASE bgame") anlegen und auswählen (SQL-Befehl: "USE bgame").


Weitere Variante des Dualplayer-Games mit Steuerung über die Tastatur:

Auf der galaxieswar-Seite befindet sich noch eine Dualplayer-Version des Spieles, bei dem die Steuerung
des Schiffes per Tastendruck durchgeführt wird (hier wird der Tastencode per Javascript abgefragt). Das Bild
für das Spiel wird dann per PHP erzeugt, wobei die Position des Schiffes aus Javascript mit GET übergeben
wird. Dabei wird dann auch nur das von PHP erzeugte Bild alle 600 Millisekunden neu geladen, nicht die komplette
Seite. Hier seht ihr das Spiel und hier findet ihr alle Dateien und eine Beschreibung.

XAMPP für Windows kann unter http://www.apachefriends.org/de/xampp-windows.html herunter geladen werden.

Zu Javascript:

Hier gibt's noch eine Javascript-Version für Singleplayer zum Herunterladen! Das Spiel in Javascript könnt
ihr hier spielen!

Beispiele zu Javascript findet ihr hier!

Bemerkungen:
Die Befehlsstrukturen in Javascript sind denen in PHP ähnlich, d.h. eine if-Anweisung
(bis auf elseif, was in Javascript getrennt geschrieben wird und somit "else if" lautet) oder eine
for-Schleife ist genau so aufgebaut, wobei in Javascript objektorientiert ist.
Variablen benötigen hier kein $-Zeichen, d.h. statt $i kann man in Javascript einfach i schreiben.
Zur Ausgabe auf dem Bildschirm verwendet man statt echo in Javascript document.write().
Das Javascript-Programm beginnt innerhalb einer HTML-Seite mit dem TAG
"<script type= 'text/javascript'>"  oder "<script>" und endet mit "</script>". Javascript ist im
Gegensatz zu PHP eine clientseitige Sprache, womit das Programm im Browser abläuft.


Bei Fragen: e-Mail schicken.