-
Notifications
You must be signed in to change notification settings - Fork 0
Die Serverskripte
Die Serverlogik basiert auf zwei PHP-Skripten. Eins zum Auslesen der aktuellen Datenbankversion auf dem Server und eines zum Ausgeben des Datenbankinhalts.
Das Skript ließt eine Textdatei mit der aktuellen Versionsnummer aus. Theoretisch ist es auch möglich das Skript wegzulassen und aus der App direkt auf die Datei zuzugreifen. Hier ist die Vorliebe des Serveradminsgefragt.
Dieses Skript ist etwas aufwendiger gestaltet. Als Eingabeparameter stehen folgende Variablen zur Verfügung:
Paramter | Erwarteter Typ | Erläuterung |
---|---|---|
dbversion | integer | Nimmt die Datenbankversion des Clients entgegen |
dbtable | string | erwartet die abzufragende Tabelle |
groups | string | die Gruppen für welche neue Einträge übermittelt werden sollen |
loadfullgroup | int | falls 1, werden die in fullgroups genannten Gruppen vollständig übertragen |
fullgroups | string | die vollständig zu übertragenden Gruppen |
Durch das Skript werden zwei voneinander unabhängige Funktionen zum Ausliefern der Datenbankeinträge bereitgestellt. Zunächst besteht die Möglichkeit nur die geänderten Datenbankeinträge zu bestimmten Gruppen abzurufen. Ein Beispielhafter Aufruf wäre dann:
getDatabase.php?dbversion=1&dbtable=equipment&groups=Gruppe1_Gruppe2
Durch den Server werden dann alle Datenbankeinträge in der Tabelle equipment mit der Markierkung der Gruppen 1 und 2 zwischen Version 2 und der aktuellen Serverversion ausgeliefert.
Zu einem Spezialfall kommt es nun, wenn ein Benutzer mit höherer Datenbankversion eine Gruppe bspw. Gruppe 3 abonniert. Der Aufruf wäre dann:
getDatabase.php?dbversion=1&dbtable=equipment&groups=Gruppe1_Gruppe2_Gruppe3
Mit der gerade beschriebenen Funktionalität würde der Server nun aber nicht diejenigen Einträge ausgegeben, welche die Versionsnummer 0 tragen. Diese Problemstellung wird durch die zweite Funktion des Skriptes bewältigt. Der dementsprechende Aufruf wäre dann:
getDatabase.php?dbversion=1&dbtable=equipment&groups=Gruppe1_Gruppe2&loadfullgroup=1&fullgroups=Gruppe3
Durch diese Funktion werden nun auch alle Einträge der Gruppe 3 mit der Versionsnummer 0 ausgegeben.
Die Antwort des Servers ist als JSON kodiert. Als Rootnode wird "OUTPUT" verwendet. Die Einträge sind dann als Array in diesem Knoten eingebunden.
Die für die Datenbankabfrage erforderlichen Logindaten werden in einer seperaten Datei gespeichert. Auch hier ist die Vorliebe des Serveradmins gefragt. Standardmäßig befindet sie sich im Ordner /config/ als /access.txt. Das Verzeichnis config ist dabei besonders zu schützen.
Hier muss noch was geschrieben werden.