Antwort #23 am: 05. März 2017, 21:40:42
Fand ich schon für 1.06 klasse.
Ich habe mir die checksum_scanner.php mal angeschaut. Wenn ich das System richtig verstanden habe, dann wird beim ersten Scan die Tabelle gelöscht und jede gefundene Datei in die DB geschrieben und der Status auf 0 gesetzt.
Beim "Check" wird dann die Dateiliste aus der DB anhand des Pfades mit den Dateien geprüft und der Status auf 1 gesetzt, soweit die Checksumme passt, bzw. anderer Wert, wenn der hash nicht stimmt oder gelöscht wurde.
Im Prinzip müsste die Prüfung in beide Richtungen laufen. Die Dateien scannen und dann in der DB prüfen, ob die Checksumme noch passt, bzw. die Datei drin steht. Somit findet man das Delta zwischen den Dateien und der DB. Wenn die Datei fehlt, muss diese in die DB und mit einem Status "x" eingetragen werden. Und eben der Scan, ob der die Datei aus der DB noch vorhanden ist.
Vom Grundgedanken würde ich nach dem aktuellen Check noch den rekursiven scan (function recursive_filescan) laufen lassen und nur bei den fehlenden Dateien einen INSERT mit einem Status >3 setzen.
Evtl. reicht es dazu eine zusätzliche IF vor dem $sql = einzubauen mit ein paar Bedingungen (case show oder so und file == DB) . Dazu reichen aber meine Codingfähigkeiten nicht.