Hi Leute,
ich probier den ganzen morgen an meinem Upload Skript rum. Das klappt auch alles soweit. Nun bin ich dran, dass man die hochgeladenen Dateien auch wieder löschen kann.
Das löschen ansich ist kein Problem. Ich habe vielmehr das Problem, dass die hochgeladenen Dateien in eine SQL Datenbank eingetragen werden. Wenn ich jetzt die Datei löschen wollte, dann soll diese aus der SQL Datenbank und vom Server gelöscht werden. Das löschen aus der SQL Datenbank ist kein Problem.
Ich muss das irgendwie gleichzeitig, oder vielmehr nacheinander machen.
Das hier ist genau die Stelle wo gelöscht wird. Ich habe jetzt einfach mal dort noch ein Unlink reingesetzt, also sieht die Geschichte so aus:
Wenn ich nun auf löschen klicke dann bekomme ich folgende Fehlermeldung:
Warning: unlink(files/): Is a directory in /srv/www/htdocs/web64/html/content/upload.php on line 68
So, d.h. hier fehlt einfach die Datei zum löschen. Schön und gut, aber wie kann ich den Dateinamen übergeben? Denn ich hole an einer anderen Stelle im Skript schon die ganzen Daten aus der Datenbank.
Bevor es zum löschen der Datei kommt, habe ich nochmal eine Sicherheitsfunktion eingebaut, damit das löschen auch wirklich gewollt ist. Das ganze schaut so aus:
Bis dahin werden auch noch alle Daten übermittelt die notwendig sind [($pfad$f) da stecken meine Testausgaben drinne].
Das dumme daran ist, der SQL Eintrag wird über die ID gelöscht, de Dateiname ist aber ein ganz anderer...
Ich hoffe ihr versteht meine Problematik und könnt mir vielleicht helfen.
mfg
ich probier den ganzen morgen an meinem Upload Skript rum. Das klappt auch alles soweit. Nun bin ich dran, dass man die hochgeladenen Dateien auch wieder löschen kann.
Das löschen ansich ist kein Problem. Ich habe vielmehr das Problem, dass die hochgeladenen Dateien in eine SQL Datenbank eingetragen werden. Wenn ich jetzt die Datei löschen wollte, dann soll diese aus der SQL Datenbank und vom Server gelöscht werden. Das löschen aus der SQL Datenbank ist kein Problem.
Ich muss das irgendwie gleichzeitig, oder vielmehr nacheinander machen.
PHP-Code:
case "delete_post":
if ($user->is_admin || $user->is_manager){
// check the data for correctness
if (is_numeric($data['ID'])){
// delete the chosen entry
if (@$db->sql_query("DELETE FROM {$basic->dt['files']} WHERE (ID = '{$data['ID']}')")) {
echo $lang['database_updated'];
redir($url, 5);
}
else
echo $db->error;
}
else
echo $lang['hacking_attempt'];
}
else
echo $lang['hacking_attempt'];
echo "<BR /><BR /><CENTER><A HREF=\"$url\">{$lang['click_here']}</A>{$lang['to_get_passed_on']}</CENTER>";
break;
default:
PHP-Code:
case "delete_post":
if ($user->is_admin || $user->is_manager){
// check the data for correctness
if (is_numeric($data['ID'])){
unlink($pfad.''.$filename);
// delete the chosen entry
if (@$db->sql_query("DELETE FROM {$basic->dt['files']} WHERE (ID = '{$data['ID']}')")) {
echo $lang['database_updated'];
redir($url, 5);
}
else
echo $db->error;
}
else
echo $lang['hacking_attempt'];
}
else
echo $lang['hacking_attempt'];
echo "<BR /><BR /><CENTER><A HREF=\"$url\">{$lang['click_here']}</A>{$lang['to_get_passed_on']}</CENTER>";
break;
default:
Warning: unlink(files/): Is a directory in /srv/www/htdocs/web64/html/content/upload.php on line 68
So, d.h. hier fehlt einfach die Datei zum löschen. Schön und gut, aber wie kann ich den Dateinamen übergeben? Denn ich hole an einer anderen Stelle im Skript schon die ganzen Daten aus der Datenbank.
Bevor es zum löschen der Datei kommt, habe ich nochmal eine Sicherheitsfunktion eingebaut, damit das löschen auch wirklich gewollt ist. Das ganze schaut so aus:
PHP-Code:
case "check_delete_post":
if ($user->is_admin || $user->is_manager){
// check the data for correctness
if ($p){
echo " <BR />{$lang['do_you_really_want_to_delete_this_entry']}<BR />\n";
echo " <FORM ACTION=\"$basic->surl_prefix&nav=delete_post\" METHOD=\"post\">\n";
echo " <INPUT TYPE=\"hidden\" NAME=\"url\" VALUE=\"$basic->surl_prefix\">\n";
echo " <INPUT TYPE=\"hidden\" NAME=\"data[ID]\" VALUE=\"$p\">\n";
echo " <INPUT TYPE=\"submit\" VALUE=\"{$lang['confirm']} ($pfad$f)\">\n";
echo " </FORM>\n";
echo "<BR /><CENTER> <A HREF=\"$url\">{$lang['back']}</A> </CENTER>";
}
else {
echo $lang['hacking_attempt'];
echo "<BR /><BR /><CENTER><A HREF=\"$url\">{$lang['click_here']}</A>{$lang['to_get_passed_on']}</CENTER>";
}
}
else {
echo $lang['hacking_attempt'];
echo "<BR /><BR /><CENTER><A HREF=\"$url\">{$lang['click_here']}</A>{$lang['to_get_passed_on']}</CENTER>";
}
break;
Das dumme daran ist, der SQL Eintrag wird über die ID gelöscht, de Dateiname ist aber ein ganz anderer...
Ich hoffe ihr versteht meine Problematik und könnt mir vielleicht helfen.
mfg
Kommentar