Seite 1 von 2
Mehrere Dateien auf einmal löschen ?!?
Verfasst: 29.05.2003 12:52
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
Danke für jeden Tipp

Verfasst: 29.05.2003 13:16
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
Verfasst: 29.05.2003 13:43
von AWSW
Hallo Muldini,
leider nicht - führt bei mir nichts aus

Verfasst: 29.05.2003 13:45
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:
$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
Verfasst: 29.05.2003 14:15
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'> Datei </th>
<th align='center' height='25' width='20%' class='toprow' nowrap='nowrap'> Größe </th>
<th align='center' height='25' width='10%' class='toprow' nowrap='nowrap'> Datei löschen </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'> <span class='genmed'><a href=$path$file>$file</a></span> </td>";
echo $t.substr($space,0,40-strlen($file)) ;
$t=(filesize($path.$file)/1024);
$t=sprintf("<td align='center' class='row3'> <span class='genmed'>%01.2f",$t)."kB</span> </td>
<td align='center' class='row3'> <span class='gensmall'><input type='checkbox' name='check1' value='filedel'></span> </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
*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*

Verfasst: 29.05.2003 14:32
von Muldini
Code: Alles auswählen
$t=sprintf("<td align='center' class='row3'> <span class='genmed'>%01.2f",$t)."kB</span> </td>
<td align='center' class='row3'> <span class='gensmall'><input type='checkbox' name='check1' value='filedel'></span> </td>";
value='filedel'
Ist filedel der Name der Datei ?
Weil nur dann kanns ja funktionieren.
Mfg
Muldini
Verfasst: 29.05.2003 14:40
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

Verfasst: 29.05.2003 14:45
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);
}
Verfasst: 29.05.2003 14:54
von Muldini
Hm, ich setz mich da mal dran ... poste den (wenn ichs denn hinbekomm) code im laufe des tages ..
Mfg
Muldini
Verfasst: 29.05.2003 15:02
von AWSW
Hallo Ihr 2
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
Vielen Dank schon mal Euch 2
