Hallo,
habe ein Script geschrieben mit welchem ich Artikel per PHP und MySQL Datenbank pflege. An die Artikel kann ich eine Datei anhängen. Der Artikel kann bearbeitet werden und die angehängte Datei kann ausgetauscht werden (alte Datei wird gelöscht, neue hochgeladen). Datei kann auch nur gelöscht werden. Alles funktioniert. Nur wenn ich nach dem Löschen der Datei eine neue Datei hochlade, kommt der Fehler, dass die angegebene Datei nicht gelöscht werden kann. Klar, da keine vorhanden ist. Der Fehler muss in meinen if-elseif-Anweisungen liegen. Es funktioniert aber alles wie gewünscht. Nur kommt eben die Meldung, dass die angegebene Datei nicht gelöscht werden kann. Hier das Script, die wesentlichen Funktionen sind kommentiert:
habe ein Script geschrieben mit welchem ich Artikel per PHP und MySQL Datenbank pflege. An die Artikel kann ich eine Datei anhängen. Der Artikel kann bearbeitet werden und die angehängte Datei kann ausgetauscht werden (alte Datei wird gelöscht, neue hochgeladen). Datei kann auch nur gelöscht werden. Alles funktioniert. Nur wenn ich nach dem Löschen der Datei eine neue Datei hochlade, kommt der Fehler, dass die angegebene Datei nicht gelöscht werden kann. Klar, da keine vorhanden ist. Der Fehler muss in meinen if-elseif-Anweisungen liegen. Es funktioniert aber alles wie gewünscht. Nur kommt eben die Meldung, dass die angegebene Datei nicht gelöscht werden kann. Hier das Script, die wesentlichen Funktionen sind kommentiert:
PHP:
<?php
if(file_exists("../library/php/config.php"))
{
include("../library/php/config.php");
}
else
{
die("<font face=\"Verdana\" size=\"2\"><b>Fehler:</b> config.php wurde nicht gefunden.</font>");
}
$filevolume = round (($file_size/1024),2);
$dbconnect = mysql_connect($dbhost, $dbuser, $dbpass);
$query = "UPDATE `kb_content` SET `subject` = '$subject', `content` = '$content', `link` = '$link', `articledate` = '$setdate', `subcategory` = '$subcategory' WHERE `id` = '$id' LIMIT 1";
$delete = "DELETE FROM `$dbtable` WHERE `id` = '$id' LIMIT 1";
$delete2 = "UPDATE `kb_content` SET `filename` = '', `filelink` = '', `filevolume` = '', `filetype` = '' WHERE `id` = '$id' LIMIT 1";
$query2 = "UPDATE `kb_content` SET `filename` = '$file_name', `filelink` = 'files/$maincategory/$file_name', `filevolume` = '$filevolume KB', `filetype` = '$file_type' WHERE `id` = '$id' LIMIT 1";
//Der Wert delete wird durch ein Formular-Kontrollkästchen mitgeliefert. Wird der Wert mitgeliefert, lösche den Artikel, wenn nicht update Artikel
if ($delete_article=="delete" && (file_exists("../files/$maincategory/$filename")))
{
mysql_select_db($dbname, $dbconnect);
mysql_query($delete, $dbconnect);
unlink("../files/$maincategory/$filename");
}
else
{
mysql_select_db($dbname, $dbconnect);
mysql_query($query, $dbconnect);
}
//Der Wert delete wird durch ein Formular-Kontrollkästchen mitgeliefert. Wird der Wert mitgeliefert, lösche die Datei, wenn nicht fahre fort mit elseif
if ($delete_file=="delete")
{
mysql_select_db($dbname, $dbconnect);
mysql_query($delete2, $dbconnect);
unlink("../files/$maincategory/$filename");
}
//Wird eine neue Datei angegeben, prüfe ob alte Datei noch im Verzeichnis und lösche diese, kopiere neue Datei und aktualisiere Inforamtionen in Datenbank
elseif (file_exists("../files/$maincategory/$filename") && (!empty($file)))
{
mysql_select_db($dbname, $dbconnect);
mysql_query($query2, $dbconnect);
//HIER WIRD DIE FEHLERMELDUNG AUSGEGEBEN - Beim Hochladen einer neuen Datei kommt ein Fehler, dass die Datei nicht gelöscht werden kann - Logisch, da nicht vorhanden
unlink("../files/$maincategory/$filename");
copy($file, "../files/$maincategory/$file_name");
}
elseif (!file_exists("../files/$maincategory/$filename") && (!empty($file)))
{
mysql_select_db($dbname, $dbconnect);
mysql_query($query2, $dbconnect);
copy($file, "../files/$maincategory/$file_name");
}
elseif (!file_exists("../files/$maincategory/$filename") && (empty($file)))
{
mysql_select_db($dbname, $dbconnect);
mysql_query($query, $dbconnect);
}
else
{
mysql_select_db($dbname, $dbconnect);
mysql_query($query, $dbconnect);
}
?>