zkmlch
Master of Disaster
Hallo liebe Tutorianer
Habe ein PHP / MySQL Problem; Ich mache Gerade einen Downloadmanager für meine Webseite, dazu möchte Ich so viel wie möglich automatisieren.
Ich verzweifle langsam aber sicher beim kleinen Generator Script, welches dazu Dient die Files im Ordner /www/downloads/ liegen, mit einer MD5 (md5_file) Summe zu versehen und in die Datenbanktabelle (db_filemanager --> tbl_files zu schreiben) Ziel: Wenn neue files in der Ordner geladen werden soll das Script nur die neuen Files, anhand der MD5 Summe in die Tabelle schreiben. Anderenfalls soll dieser die Files auflisten welche er schon in der Datenbank eingetragen hat...
Nun mein Problem: Ich habe Total 48 Dateien in dem Ordner "Downloads" das Script gibt aber nur 25 Dateien eine MD5 Summe. Wiso macht dieses Script das? Dann hat es bei dem Eintrag in die Datenbank noch einen Schönheitsfehler... er generiert pro durchlauf zwei Tabelleneinträge mit dem wert . & .. Wie krieg Ich das noch weg?
Es folgt nun das generator.php Script:
Im Anhang ist noch der erstellte Datenbankeintrag...
Ich bedanke mich bereits im Vorraus für die wertvolle Hilfe.
Gruss Patrick
Habe ein PHP / MySQL Problem; Ich mache Gerade einen Downloadmanager für meine Webseite, dazu möchte Ich so viel wie möglich automatisieren.
Ich verzweifle langsam aber sicher beim kleinen Generator Script, welches dazu Dient die Files im Ordner /www/downloads/ liegen, mit einer MD5 (md5_file) Summe zu versehen und in die Datenbanktabelle (db_filemanager --> tbl_files zu schreiben) Ziel: Wenn neue files in der Ordner geladen werden soll das Script nur die neuen Files, anhand der MD5 Summe in die Tabelle schreiben. Anderenfalls soll dieser die Files auflisten welche er schon in der Datenbank eingetragen hat...
Nun mein Problem: Ich habe Total 48 Dateien in dem Ordner "Downloads" das Script gibt aber nur 25 Dateien eine MD5 Summe. Wiso macht dieses Script das? Dann hat es bei dem Eintrag in die Datenbank noch einen Schönheitsfehler... er generiert pro durchlauf zwei Tabelleneinträge mit dem wert . & .. Wie krieg Ich das noch weg?
Es folgt nun das generator.php Script:
PHP:
<?php
//Datenbank-Login
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="****"; // MySQL-User angeben
$mysqlpwd="****"; // Passwort angeben
$mysqldb="db_filemanager"; // Gewuenschte Datenbank
//Mit Datenbank Verbinden
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");
//Datenbank auswählen
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
//Variabel für das Auslesen aller Files"
$sql_files = "SELECT * FROM tbl_files";
//Öffnet eine persistente Verbindung mit der MySQL Datenbank im zusamenhang mit Browser
$files_query = mysql_query($sql_files) or die("Anfrage nicht erfolgreich");
?>
<?php
$fp=opendir('.'); // Öffnet das aktuelle Verzeichnis /. In diesem Fall /www/downloads/
while(false !== ($datei = readdir($fp))) { // Mach so lang die runden bis das Verzeichnis durchgelesen ist!
$chksum = md5_file($datei); // Generierung der MD Summen
$status = ('N'); // Statusvergabe --> N für New und Unbearbeitet
// Nun sollte die DB geprüft werden ob Sie die MD Summe bereits enthaltet...
$result = mysql_query("SELECT * FROM `tbl_files` WHERE `software_md5sum` = '".$chksum."'");
$check = mysql_fetch_row($result);
// ...falls ja, fertig & Echo ausgabe!
if($check != '') die('Eintrag bereits vorhanden');
// ...anderenfalls INSERT der Daten in die Tabelle der DB
else mysql_query("INSERT INTO `tbl_files` (`software_filename` , `software_status` , `software_md5sum`) VALUES ('$datei' , '$status' , '$chksum')") or die(mysql_error());
}
closedir($fp); // Schliesst das Verzeichnis
?>
Im Anhang ist noch der erstellte Datenbankeintrag...
Ich bedanke mich bereits im Vorraus für die wertvolle Hilfe.
Gruss Patrick
Anhänge
Zuletzt bearbeitet: