Skip to content
This repository has been archived by the owner on Apr 12, 2021. It is now read-only.

Die Serverskripte

firesoft-de edited this page Jan 24, 2018 · 4 revisions

Die Serverlogik basiert auf zwei PHP-Skripten. Eins zum Auslesen der aktuellen Datenbankversion auf dem Server und eines zum Ausgeben des Datenbankinhalts.

Das Versionsskript

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.

Das Datenbankskript

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.

Beispiel Datenbankantwort

Das Imageskript

Hier muss noch was geschrieben werden.