Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
adminbereich eines uploadtools - wie mithilfe von checkbox dateien löschen? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
adminbereich eines uploadtools - wie mithilfe von checkbox dateien löschen?


 
Quizmasterlex
26-10-2006, 10:13 
 
Hi,

ich bin im Moment php am lernen und habe mich mal an einem uploadtool versucht!

Der uploadbereich funktioniert auch wunderbar, nur das admintool will net wie ich will!

folgendes:
die Daten werden durch das script (upload.php) hochgeladen und zeilenweise in der Datei uploads.txt gespeichert (array)!

das admintool soll vorerst nur löschen können. Dazu wird die uploads.txt ausgelesen und die einzelnen Zeilen als checkboxelemente ausgegeben! Ich habe leider nur keine ahnung, wie, wenn ich dann auf den Button klicken, die dateien vom server und dann aus der uploads.txt gelöscht werden! Das problem ist, dass nur die ausgewählten Daten gelöscht wertden sollen!

Hier der Code:

<html>
<head>
<title>ADMINBEREICH</title>
</head>
<body>

<form method="POST" action="<?php print $PHP_SELF>

<input type="submit" value="Makierte_Dateien_löschen">
</form>

<?php
$uploads='uploads.txt';
$liste=file($uploads);


for($i=0; $i<=count($liste);$i++) {
$s=chop($liste[$i]);
if (!empty($s))
echo "<input type=checkbox name='Datei' value='".$s."'>".$s."<br>"; }
?>


</body>
</html>


Danke für eure Hilfe!


PHP v. 5
register_globals = off
safe_mode=off

 
BLG
26-10-2006, 10:58 
 
hä?
wie du speicherst die hochgeladenen Dateien in einer *.txt? Wie geht dat denn, liest du den Stream aus?
Als Array ... serialisiert oder wie?

Ich glaube du meist wohl eher du speicherst die Datei-url zeilenweise in einer *.txt!? ;)

Zu deinem Prob:
Wenn alle Checkbox-Elemente den selben Namen tragen kannst du
auch schlecht serverseitig auf diese Daten zugreifen.
Eine Möglichkeit wäre z.B. an den Namen 'Datei' eine Id der Datei
anzuhängen (z.B. die Zeile in der txt-Datei) sodass wenn die Checkbox
'Datei12' checked ist, die Datei aus Zeile 12 gelöschen werden soll.

Besser wäre es hier wenn du eine Datenbank zum Speichern der
DateiInformationen nutzt, in denen du Infos wie Id, name, größe
(wenn du das brauchst) und Pfad speicherst!

MFG
BLG

 
Slava
26-10-2006, 11:17 
 
du hast alle checkboxen mit dem gleichem namen aber keinem array
mach so:
echo "<input type=checkbox name='datei[]' value='".$s."'>".$s."<br>";
ausserdem stehen deine checkboxen nicht im formular und werden in keinem fall gesendet.
auch submit button muss ein name haben.
und die atributenvalues müssen immer in "" stehen.

bei ankommen von formulardaten einfach dein array datei[] durchlaufen
if(isset($_POST['datei']) && is_array($_POST['datei'])){
foreach($_POST['datei'] as $dat){ unlink($dat); }
}

 
Quizmasterlex
26-10-2006, 11:26 
 
Original geschrieben von BLG
hä?
wie du speicherst die hochgeladenen Dateien in einer *.txt? Wie geht dat denn, liest du den Stream aus?
Als Array ... serialisiert oder wie?

Ich glaube du meist wohl eher du speicherst die Datei-url zeilenweise in einer *.txt!? ;)


jepp


Zu deinem Prob:
Wenn alle Checkbox-Elemente den selben Namen tragen kannst du
auch schlecht serverseitig auf diese Daten zugreifen.
Eine Möglichkeit wäre z.B. an den Namen 'Datei' eine Id der Datei
anzuhängen (z.B. die Zeile in der txt-Datei) sodass wenn die Checkbox
'Datei12' checked ist, die Datei aus Zeile 12 gelöschen werden soll.

Besser wäre es hier wenn du eine Datenbank zum Speichern der
DateiInformationen nutzt, in denen du Infos wie Id, name, größe
(wenn du das brauchst) und Pfad speicherst!

MFG
BLG
hm. da ich halt noch php am lernen bin machs ich lieber als mit ner Textdatei, so als "zwischenprojekt zum Vertiefen^^"


übermittelt werden dann nur die elemente, mit einem Hacken davor! //fast fertig

man kann doch keine phpschleife in einem Formular ausführen, oder bin ich da falsch informiert?

 
Slava
26-10-2006, 11:32 
 
nein es darf nicht in einem element 2 mal name vorkommen.
einfach name="list[]" ohne zahlen im array.

 
Quizmasterlex
26-10-2006, 11:39 
 
Original geschrieben von Slava
nein es darf nicht in einem element 2 mal name vorkommen.
einfach name="list[]" ohne zahlen im array.


hm. ich weis grad nicht wo das list hin soll?
echo "<input type=checkbox name='datei[]' value='".$s."'>".$s."<br>";

oder
echo "<input type=checkbox name='list[]' value='".$s."'>".$s."<br>";


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55 Uhr.