Hallo Community
Ich bin jetzt schons eit einiger zeit hier im Forum angemeldet, aber, wie ihr seht, habe ich noch nicht viel beigetragen.
Das möchte ich nun ändern.
Zum Anfang möchte ich euch nun ein kleines, aber ausführliches PHP-Grundtutorial anbieten mit dem Beispiel einer Rangliste für euren Server.
Vorraussetzungen:- einen Webserver, der PHP unterstützt. [Ein mit XAMPP installiertes Apache sollte reichen)
- Einen MT2- PServer (Da wir ja eine Rangliste erstellen wollen)
- Interesse am Thema & Freude am Lernen
Erst einmal eine kleine beschreibung von PHP, damit die, die nicht wissen, was PHP ist, es verstehen können:
Quote:
|
Originally Posted by Wikipedia
PHP (rekursives Akronym für „PHP: Hypertext Preprocessor“, Backronym aus „Personal Home Page Tools“) ist eine Skriptsprache mit einer an C und Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird.[2] PHP wird als freie Software unter der PHP-Lizenz verbreitet.
PHP zeichnet sich durch die breite Datenbankunterstützung[3] und Internet-Protokolleinbindung sowie die Verfügbarkeit zahlreicher Funktionsbibliotheken[4] aus. PHP wird auf ca. 75% aller Websites als serverseitige Programmiersprache eingesetzt[5], und ist damit die am häufigsten verwendete Sprache zum Erstellen von Websites.
|
So, das sollte nun klar sein.
Wie ist PHP aufgebaut?
Jedes PHP-Script hat einen vorbestimmten Aufbau:
Hier seht ihr, dass ein PHP-Code innerhalb einer *.php-Datei mit dem Syntax
gestartet und mit dem Syntax
wieder geschlossen wird.
Alles davor oder danach wird als normaler HTML-Text übernommen. Auf HTML möchte ich aber eigendlich nicht genau eingehen.
Eine der wichtigsten Regeln ist es, dass an fast jedem zeilende, also nach jedem
beendetem Befehl, ein Semicolon, also ";", gesetzt werden muss. Ansonsten erhaltet ihr eine Fehlermeldung
Info´s zu If-Abfragen:
Mit If-Abfragen kannst du abfragen, ob bestimmte Variablen einen bestimmten Wert besitzen oder ob sie ausgeführt wurden (falls der variable eine funktion zugewiesen wurde).
Beispiel:
PHP Code:
<?php
$variable = 1;
if $variable == 1 { // mit "{" If-Abfrage öffnen
echo "Die Variable hat den Wert 1";
} // mit "}" If-Abfrage schließen
?>
Operatoren für die If-Abfrage:
Code:
== gleich
=== gleich (auch vom Variablentyp - String, Boolean, Integer)
!= ungleich
<> ungleich, ist identisch mit !=
< kleiner
<= kleiner oder gleich
> größer
>= größer oder gleich
Noch eine kleine Info zu Kommentaren:
Einzeilige Kommentare erstellst du mit "//".
Möchtest du mehrere zeilen auskommentieren, benutzt du "/*", um das Kommentar zu öffnen, und "*/", um es wieder zu schließen. Beispiel:
PHP Code:
<?php
echo "Dieser Text wird angezeigt";
//echo "Dieser Text wird ausgeblendet";
/*
echo "Diese Zeilen";
echo "werden nicht";
echo "ausgegeben";
*/
# echo "Diese zeile ist wirkungslos";
?>
Unser erster Script
Wenn man eine neue Programmier- bzw. Scriptsprache erlernt, sollte man als erstes einen Script erstellen, der den text
"Hello World" ausgibt.
Texte und HTML-Codes geben wir in PHP mit dem Befehl
echo aus.
hier einmal der hello World-Script:
PHP Code:
<?php
echo "Hello World";
?>
Der Text, den
echo ausgeben soll, muss in Anführugnszeichen, also " ", stehen. Auch das Semicolon dürfen wir nicht vergessen.
Der Datenbankzugriff
Um eine Rangliste zu erstellen, müssen wir natürlich auch auf die Datenbank des Spiels zugreifen.
Dies erfolgt über den Befehl
PHP Code:
mysql_connect();
Ein kleines Beispiel mit Standard-Passwort & Port:
PHP Code:
<?php
$db_host = '192.168.0.100'; // Host des MySQL-Servers festlegen
$db_user = 'root'; // Loginname festlgen
$db_pass = '123456'; // Passwort für den Loginnamen
$link = mysql_connect($db_host, $db_user, $db_pass); // Verbinden
if (!$link) { //Wenn keine Verbindung: Fehlermeldung ausgeben.
die('Could not connect: ' . mysql_error());
}
?>
Wir sind nun zwar mit dem Server verbunden, doch wir müssen noch eine Datenbank auswählen. Das machen wir, indem wir folgende Zeile an den PHP-Code anhängen:
PHP Code:
mysql_select_db("player") or die ("Datenbank konnte nicht ausgewählt werden");
Wenn die Datenbank "player" nicht ausgewählt worden konnte, gibt erhält man eine Fehlermeldung.
Aber wir gehen davon aus, dass alles geklappt hat. Jetzt sind wir in der Datenbank.
Ich empfehle es, den oberen Block in eine extra *.php-datei einzubinden und in die Hauptdatei mit "include("datei.php");" einzubinden.
"include();" Befehle sollten imemr am Anfang des *.php-Dokuments stehen.
Doch wie beziehen wir die Dateien aus den einzelnen Tabellen?
Daten Lesen & Schreiben
Da wir nun mit der Datenbank verbunden sind, wollen wir auch unsere Dateien lesen.
Das machen wir wie folgt:
PHP Code:
<?php
$section = "SELECT
*
FROM
player"
# Dies geht natürlich auch in einer Zeile:
$section = "SELECT * FROM player";
# Den Variablenname $section könnt ihr beliebig ändern
########## Erklärung ##########
# SELECT zeigt PHP, dass wir etwas auswählen wollen.
# Der Stern "*" sagt PHP, dass wir Alle Reihen der Tabelle auslesen wollen.
# Ihn kann man auch durch Reihennamen, mit Kommas getrennt, ersetzen,
# dann werden nur diese Reihen ausgelesen.
# FROM sagt PHP, aus welcher tabelle wir die Daten haben möchten
# nach FROM folgt der Tabellenname. Hier player :)
?>
Nun haben wir unsere Daten. Diese wollen wir aber nun auch ausgeben, dass man sie auf der Website sehen kann.
Folgender Code macht es möglich: [Ich bediene mich einer Tabelle]
PHP Code:
<html>
<body>
<table width="100">
<tr> //Hier erstelle ich die Erste Zeile der Tabelle
<td>Platz</td><td>Name</td><td>Exp</td><td>Level</td>
</tr>
<?php //nun setzen wir die Schleife mitten in die HTML-Tabelle ein
$section = "SELECT * FROM player ORDER BY exp DESC";
# Das "ORDER BY" sagt PHP, es soll die Daten der Tabelle nach EXP sortieren.
# natürlich könnt ihr auch nach Level sortieren lassen, wie es euch gefällt
$i = "0" ; // i nutzen wir zum Zählend es Rangs
$query = mysql_query($section); //einen query erstellen
while($fetch = mysql_fetch_object($query)) // mit while eine Schleife starten
{ // Schleife öffnen
# Alles innerhalb dieser Schleife wird sooft wiederholt, bis alle zeilen der tabelle durchgegangen wurden.
$i = $i + 1 ;
echo "<tr>
<td>$i</td>
<td>$fetch->name</td>
<td>$fetch->level</td>
<td>$fetch->exp</td>
</tr>
";
# mit $fetch->VAR lesen wir den jeweiligen Zeilenwert der Reihe VAR aus.
} // Schleife Schließen
?>
</table>
</bod>
</html>
Fertig ist unsere Rangliste
Im Anhang die funktionierende Rangliste
Ich hoffe ich konnte ein paar Leuten weiterhelfen
Solltet ihr Fehler finden (was ihr sicher tun werdet), oder Verbesserungsvorschläge habt, bitte Posten :]
Ich bin jeden Tag hier Online also werde ich dieses Tutorial auch weiter ausbauen.
Und nehmt mich bitte nicht zu hart ran, ist mein Erstes Guide
Ich habe bereits die SuFu genutzt und kein anderes PHP-Tut im Forum gefunden, kann aber auch sein, dass ich nicht gründlich genug gesucht habe.
* EDIT1 *
VirusTotal-Scan
AhnLab-V3 2010.11.12.06 2010.11.12 -
AntiVir 7.10.13.232 2010.11.12 -
Antiy-AVL 2.0.3.7 2010.11.12 -
Authentium 5.2.0.5 2010.11.12 -
Avast 4.8.1351.0 2010.11.12 -
Avast5 5.0.594.0 2010.11.12 -
AVG 9.0.0.851 2010.11.12 -
BitDefender 7.2 2010.11.12 -
CAT-QuickHeal 11.00 2010.11.09 -
ClamAV 0.96.4.0 2010.11.12 -
Comodo 6697 2010.11.12 -
DrWeb 5.0.2.03300 2010.11.12 -
Emsisoft 5.0.0.50 2010.11.12 -
eSafe 7.0.17.0 2010.11.11 -
eTrust-Vet 36.1.7971 2010.11.12 -
F-Prot 4.6.2.117 2010.11.11 -
F-Secure 9.0.16160.0 2010.11.12 -
Fortinet 4.2.249.0 2010.11.12 -
GData 21 2010.11.12 -
Ikarus T3.1.1.90.0 2010.11.12 -
Jiangmin 13.0.900 2010.11.12 -
K7AntiVirus 9.67.2963 2010.11.11 -
Kaspersky 7.0.0.125 2010.11.12 -
McAfee 5.400.0.1158 2010.11.12 -
McAfee-GW-Edition 2010.1C 2010.11.12 -
Microsoft 1.6301 2010.11.12 -
NOD32 5614 2010.11.12 -
Norman 6.06.10 2010.11.12 -
nProtect 2010-11-12.03 2010.11.12 -
Panda 10.0.2.7 2010.11.11 -
PCTools 7.0.3.5 2010.11.12 -
Prevx 3.0 2010.11.12 -
Rising 22.73.03.06 2010.11.12 -
Sophos 4.59.0 2010.11.12 -
Sunbelt 7288 2010.11.12 -
SUPERAntiSpyware 4.40.0.1006 2010.11.12 -
Symantec 20101.2.0.161 2010.11.12 -
TheHacker 6.7.0.1.082 2010.11.11 -
TrendMicro 9.120.0.1004 2010.11.12 -
TrendMicro-HouseCall 9.120.0.1004 2010.11.12 -
VBA32 3.12.14.2 2010.11.11 -
ViRobot 2010.10.30.4121 2010.11.12 -
VirusBuster 12.74.1.0 2010.11.12 -
* EDIT 1 ENDE *