PHP steht für „PHP: Hypertext Preprocessor“ und ist eine Skriptsprache, die am Webserver ausgeführt wird.
Bei einer mit HTML erstellten Webseite ist keine Dynamik möglich. Mithilfe von PHP können auf einer Webseite Interaktionen eingebaut oder die Seite in irgendeiner Form, beispielsweise durch Reaktionen auf Eingaben, angepasst werden.
Öffnet der Betrachter in seinem Browser (1) eine solche Webseite über einen PHP-fähigen Webserver (2), werden die Anweisungen von PHP interpretiert (3), ausgeführt (4) und das Ergebnis als HTML-Code zurückgesendet (5). Ein klarer Vorteil dabei ist, dass der PHP-Quellcode dem Betrachter nicht zugänglich ist. Er sieht im Browser nur den zurückgelieferten HTML-Code.
Variablen müssen im Gegensatz zu vielen Programmiersprachen nicht extra deklariert werden. Sie werden mit einem vorangestellten Dollar-Zeichen gekennzeichnet und beim ersten Aufruf definiert.
Auf numerische Variablen lassen sich folgende Operatoren anwenden: +, -, *, / und %
Mit PHP kann man interaktive Webseiten erstellen, bei denen Benutzereingaben aus Formularen durch PHP ausgewertet werden. Die Darstellung der Formulare wird mit HTML-Code umgesetzt.
<form action="auswertung.php" method="POST"> <label for="n">Name: </label> <input type="text" id="n" name="name" maxlength="10"> </br> Passwort: <input type="password" name="passwort"> </br> 1 <input type="radio" name="radiobutton" value="1" checked> ODER 2 <input type="radio" name="radiobutton" value="2"> </br> 1 <input type="checkbox" name="check1" value="1" checked> UND 2 <input type="checkbox" name="check2" value="1"> </br> <input type="hidden" name="versteckt" value="versteckter Inhalt"> </br> <select name="auswahlbox"> <option>Test 1</option> <option>Test 2</option> </select> </br> <input type="reset"> </br> <input type="submit" name="submit" value="Absenden!"> </form>
Die Daten aus dem Formular werden mittels HTTP an das auswertende PHP-Programm übermittelt. Dabei gibt es 2 Methoden: GET und POST.
POST
GET
Da bei der Methode GET die Daten über die URL an den Server weitergegeben werden, ist es möglich, die Daten zu manipulieren. Die sicherere und am häufigsten genutzte Methode ist daher die Methode POST.
Die übermittelten Daten werden automatisch in Arrays gespeichert, $_GET[] bzw. $_POST[]. Der Index wird dabei durch den Namen des Eingabefeldes im Formular bestimmt.
<?php echo "<p>Folgende Daten wurden übermittelt:</p>\n"; echo "Name: " .$_POST["name"] ."<br>\n"; echo "Passwort: " .$_POST["passwort"] ."<br>\n"; echo "Auswahl-Radio: " .$_POST["radiobutton"] ."<br>\n"; echo "Auswahl 1: " .$_POST["check1"] ."<br>\n"; echo "Auswahl 2: " .$_POST["check2"] ."<br>\n"; echo "Versteckter Text: " .$_POST["versteckt"] ."<br>\n"; echo "Auswahlbox: " .$_POST["auswahlbox"] ."<br>\n"; ?>
MySQL ist eines der weltweit am weitesten verbreiteten relationale Datenbankverwaltungssysteme. Es bildet die Grundlage für viele dynamische Webauftritte, so z.B. auch für YouTube, Google und Facebook.
MySQL sieht grundsätzlich einen MySQL-Server vor, auf dem Daten gespeichert sind, und einen oder mehrere MySQL-Klienten/User (bei uns meistens: localhost), die Anfragen an den Server schicken, die dieser beantwortet.
Auf dem Datenbankmanagementsystem können mehrere Datenbanken erstellt werden. In einer Datenbank können wiederum mehrere Tabellen angelegt werden. Physikalisch erstellt MySQL dabei für jede Datenbank einen Ordner auf der Festplatte, in dem Dateien für die Struktur und die Daten der einzelnen Tabellen abgelegt werden.
Jede Tabelle kann Spalten enthalten, in denen Daten eines festgelegten Datentyps gespeichert werden können (z.B. Integer (ganze Zahlen) oder Varchar (Zeichenkette)).
Für die Verwaltung und Administration bietet sich phpMyAdmin an. Mit dieser grafischen Benutzeroberfläche kann man Datenbanken, Tabellen, Spalten und einzelne Datensätze auslesen und verändern, aber auch auf die Benutzerverwaltung zugreifen und Änderungen durchführen, sowie eine Vielzahl an Server-Einstellungen einsehen.
Die Verbindung zur Datenbank wird meist in eine Datei ausgelagert (z.B. config.inc.php). Mittels include wird die Datei eingebunden. Die Zugangsdaten zur Datenbank werden nur mehr in der Datei config.inc.php angegeben und können damit, vergleichbar mit Stileigenschaften durch CSS, sehr leicht für alle Seiten geändert werden.
<!-- config.inc.php --> <?php $hostname = "127.0.0.1"; $user = "root"; $passwort = ""; $database = "datenbank"; $table = "tabelle"; $verbindung = mysql_connect($hostname,$user,$passwort) or die ("Sql- Verbindung konnte nicht aufgenommen werden."); $db_select = mysql_select_db($database) or die ("Datenbank kann nicht geöffnet werden."); ?> <!-- config.inc.php -->
<?php include (config.inc.php); mysql_close($verbindung); // nur notwendig, wenn Verbindung mittels mysql_pconnect() ("p" für persistent) hergestellt wird // bei mysql_connect wird die Verbindung nach Abarbeitung des Skripts automatisch getrennt ?>
Abfragen an den MySQL-Server werden mit dem Befehl mysql_query([Anweisung]); durchgeführt. Die Anweisung muss in MySQL-Syntax geschrieben. Es empfiehlt sich die Anweisung in eine andere Variable auszulagern, was die Fehlersuche sehr erleichtert kann.
Um (bei einer fehlerlosen Abfrage) mit den Rückgabewerten arbeiten zu können, muss die Abfrage auf eine Variable gespeichert werden: $query=mysql_query([Anweisung]);. Über verschiedene Befehle können dann z.B. die Anzahl der passenden Datensätze (mysql_num_rows($query);) oder einzelne Daten (mysql_result($query, [Zeile], [Spalte]);) ausgelesen werden.
Beispiel
<?php include (config.inc.php); $sql = "SELECT * FROM $table"; $query = mysql_query($sql); $anz = mysql_num_rows($query); echo "<p><br> In der Tabelle <b>$table</b> befinden sich $anz Datensätze:</p>"; for ($i=0;$i<$anz;$i++) { $name=mysql_result($query,$i,0); $strasse=mysql_result($query,$i,1); $ort=mysql_result($query,$i,2); $sorte=mysql_result($query,$i,3); $menge=mysql_result($query,$i,4); echo $name.", ".$strasse.", ".$ort.", ".$sorte.", ".$menge."<br>"; } ?>