Mehrere Dateien auf einmal löschen ?!?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Mehrere Dateien auf einmal löschen ?!?

Beitrag von AWSW »

Hallo,
habe mir eine kleine Übersicht gebastelt, die es erlaubt ein Verzeichnis namens ./upload/ auszulesen: fileuploaddel.zip

[ externes Bild ]
Klick mich größer

Mein Problem ist schon seit nun einigen Stunden weil ich wohl gedanklich leider nicht mehr weiter komme, dass ich diese Dateien durch Markieren der entsprechenden Zeilen auch wieder löschen kann...

Ich hoffe Ihr könnt mir da weiter helfen, da mein kleines PHP-Wissen am Ende zu sein scheint :cry:

Danke für jeden Tipp :)
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Muldini

Beitrag von Muldini »

Hm, mein erster Gedanke wäre da

Code: Alles auswählen

foreach($check as $delete)
{
  der delete befehl mit $delete
}

$delete wäre die file // $check die aktivierte checkbox

Vielleicht kommst damit weiter.

Mfg
Muldini
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo Muldini,
leider nicht - führt bei mir nichts aus :cry:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Muldini

Beitrag von Muldini »

Sorry wegen der Frage, aber du hast die Sachen schon angeglichen und nicht einfach so übernommen ?
Ich mein der Befehl ist ja kein Befehl ;)

Poste bitte mal die Datei mit der Form.

Der Befehl für das Löschen von Dateien ist unlink().
Also müsste der komplette Befehl sein:

Code: Alles auswählen

foreach($check as $delete)
{
  unlink($delete);
}
$check ist der name deiner checkboxen !!
am besten du zählst diese mit einer for-schleife hoch. name=check_[$i]

$delete ist der pfad zu der file die du löschen willst
(wird ja schon in deiner liste ausgelesen)

hm hoffe ich konnte dir helfen ;)

Mfg
Muldini
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

$page_title = $lang['FileUpload'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

// User überprüfen START
if ( $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD || $userdata['user_level'] == JUNIOR_ADMIN )
{
}
else
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised'], $lang['Not_Authorised']);
exit;
}
// User überprüfen ENDE

?>

<table width='100%' border='0' cellpadding='1' cellspacing='1' style='border-collapse: collapse' class='forumline'>
<tr>
<td class='catHead' width='100%' colspan='3' height='25'><span class='cattitle'><center><b>Verzeichnisinhalt von ./upload</b></center></span></td>
</tr>
<tr>
<td colspan='3' height='1' class='row3'><img src='images/spacer.gif' width='1' height='1' alt='.'></td>
</tr>
<tr>
<th align='center' height='25' width='70%' class='toprow' nowrap='nowrap'>&nbsp;Datei&nbsp;</th>
<th align='center' height='25' width='20%' class='toprow' nowrap='nowrap'>&nbsp;Größe&nbsp;</th>
<th align='center' height='25' width='10%' class='toprow' nowrap='nowrap'>&nbsp;Datei löschen&nbsp;</th>
</tr>

<?php

// ##### Verzeichnsis lesen - START #####
$base_dir = './upload/';
$path = $base_dir;
$dir_handle = @opendir($path) or die("Das Verzeichnis $path konnte nicht geöffnet werden !");
$space=" ";

if ($path != "."){
while ($file = readdir($dir_handle)) {
if($file=='.'||$file=='..')
continue;

$t="<tr><td align='left' class='row2'>&nbsp;<span class='genmed'><a href=$path$file>$file</a></span>&nbsp;</td>";
echo $t.substr($space,0,40-strlen($file)) ;

$t=(filesize($path.$file)/1024);
$t=sprintf("<td align='center' class='row3'>&nbsp;<span class='genmed'>%01.2f",$t)."kB</span>&nbsp;</td>
<td align='center' class='row3'>&nbsp;<span class='gensmall'><input type='checkbox' name='check1' value='filedel'></span>&nbsp;</td>";
echo substr($space,0,10-strlen($t)) . $t ;
}
} elseif ($path = ".") {
while ($file = readdir($dir_handle)) {

$t="<a href=$file>$file</a>";
echo $t.substr($space,0,40-strlen($file)) ;

$t=(filesize($file)/1024);
$t=sprintf("%01.2f",$t)."kb ";
echo substr($space,0,10-strlen($t)) . $t;
}
}
closedir($dir_handle);

echo "</table>";
// ##### Verzeichnsis lesen - ENDE #####

?>


<script language="Javascript" type="text/javascript">
function select_switch(status)
{
for (i = 0; i < document.file_delete.length; i++)
{
document.file_delete.elements.checked = status;
}
}
</script>

<form method="post" name="post" action="fileuploaddel.php">
<table width="100%" colspan="2"><tr><td width="50%" colspan="1" align="center" valign="middle"><span class="gensmall">
<a href="javascript:select_switch(true);" class="gensmall">Alle markieren</a> ::
<a href="javascript:select_switch(false);" class="gensmall">Markierungen aufheben</a>
</span></td></tr><tr><td width="50%" colspan="1" align="center" valign="middle">
<input class="liteoption" type="submit" name="submit_update" value="Ausgewählte Dateien löschen" />
</td></tr></table>
</form>


<?php

if ($submit_update)
{
// DATEI LÖSCHEN START
foreach($check1 as $file)
{
unlink($file);
}
$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
header($header_location . append_sid("fileuploaddel." . $phpEx, true));
exit;

}
// DATEI LÖSCHEN ENDE

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>


Hallo,
hier mein Versuch - leider wie gesagt passiert nichts außer dass die Seite neu geladen wird, was ja auch richtig ist da ein Refresh nach der Aktion geünscht ist, aber es wird halt nichts gelöscht :cry: *schnief* Ist bisher ohne .tpl gelöst, aber sollte ja trotzdem klappen denke ich ;)

Ich hoffe Du/Ihr könnt da mal nen näheren Blick drauf werfen, da meine PHP Kenntnisse leider noch nicht so weit sind *schnief* :roll: :cry: :roll:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Muldini

Beitrag von Muldini »

Code: Alles auswählen

$t=sprintf("<td align='center' class='row3'>&nbsp;<span class='genmed'>%01.2f",$t)."kB</span>&nbsp;</td> 
<td align='center' class='row3'>&nbsp;<span class='gensmall'><input type='checkbox' name='check1' value='filedel'></span>&nbsp;</td>"; 
value='filedel'

Ist filedel der Name der Datei ?
Weil nur dann kanns ja funktionieren.

Mfg
Muldini
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
nein ist einfach aus einem anderen Beispiel übernommen, dass aber auch leider nicht funktionierte. Die ganze Funktion findest Du alles in diesem Code, der halt leider auch noch nicht rennt :(

Das Java wird nur für das Markieren oder DeMarkieren der ganzen Kontrollkästchen gebraucht. Den Code hatte mir esperitox mal geschickt, aber ich habe ihn hier noch nicht zum laufen bekommen, was dann die 2. Baustelle wäre ;)

Danke Dir :roll:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Schau doch erstmal, ob überhaupt was bei dem foreach rauskommt. Mach mal aus

Code: Alles auswählen

// DATEI LÖSCHEN START 
foreach($check1 as $file) 
{ 
unlink($file); 
} 

Code: Alles auswählen

// DATEI LÖSCHEN START 
foreach($check1 as $file) 
{ 
echo $file.'<br />';
unlink($file); 
} 
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Muldini

Beitrag von Muldini »

Hm, ich setz mich da mal dran ... poste den (wenn ichs denn hinbekomm) code im laufe des tages ..

Mfg
Muldini
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo Ihr 2 :D

Schön das Ihr mir helft - Vielen Dank schon mal !!!

@Chaze: Ändert sich leider nichts. Die Seite refresht einmal und danach sehe ich wieder die gleiche Liste der Dateien wie zuvor :(

@Muldini: Das wäre sehr nett :) Eilt auch nicht so sehr also lass Dir ruhig Zeit :wink:

Vielen Dank schon mal Euch 2 :D
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Antworten

Zurück zu „Coding & Technik“