if(("mueller" != $_POST['user']) or ("12345" != $_POST['pass'];)){die("Benutzername oder Passwort ist falsch.");}
$user = $_POST['user'];
$soll = explode("\r\n",$_POST['dat']); // Empfangene Belegungen lesen
$ist = eigene_datenbank_lesen($user); // Belegungen aller Objekte eines Users aus der eigenen Datenbank lesen
$neu = array_diff($soll, $ist); // Belegungen die dazu kommen
$weg = array_diff($ist ,$soll); // Belegungen die entfernt werden sollen
$pdo->exec("START TRANSACTION;"); // sofortiges Schreiben auf die Festplatte unterbrechen (nur bei InnoDB)
foreach($weg as $belegung){
belegung_loeschen($belegung,$user); // Hier nicht prüfen, ob die Objektnummer zu diesem User gehört! **
}
foreach($neu as $belegung){
belegung_anlegen($belegung,$user); // Hier prüfen, ob der User das Objekt schreiben darf
}
$pdo->exec("COMMIT;"); // vom Cache auf die Festplatte schreiben (geht nur bei InnoDB)
echo "dzt=".$_POST['dzt']."&crc=".$_POST['crc']."&zei=".(count($soll)-1); // Empfangsbestätigung
// ** Beim Löschen sollten Sie nicht prüfen ob das Objekt durch den User geschrieben werden darf. Grund:
// Alles was zu löschen ist, kann nur aus der eigenen Datenbank kommen. Wenn dort noch Belegungen für ein Objekt
// vorhanden sind, welches zwischenzeitlich gekündigt wurde, ist die Schnittstelle eventuell dauerhaft blockiert.
|