• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

datei via link löschen

heath

Neues Mitglied
hallo,

ich bin derweil dabei mir eine art autoindex zusammen zubasteln, da ich das auto index script, dass es auf sourceforge gibt nicht sonderlich mag.

ich moechte es auch erlauben dateien zu löschen. das soll nicht über ein aufwendiges script gehen, sondern ueber einen einfachen link.
auf den link klicken und weg ist die datei. so soll's laufen.


dort soll die unlink function eingebaut werden und über einen link aufgerufen werden können.



damit nicht kommt, dass ich googlen solle. ich habe bereits schon stundenlang gegoogelt herumgespielt und bekomme es nicht zum laufen.


ich hoffe ihr könnt mir helfen.

gruß
 
Also ich verstehs nich direkt, du hast einen Upload und willst, dass man die Dateien auch per Link wieder löschen kann?

Dann kannst du beim uploaden in der Datenbank einen Code speichern und dann im Link per Get-Parameter den Namen bzw. die ID der Datei + den Code abfragen, wenn beide gefunden werden und richtig sind (was sie sind, wenn sie gefunden werden), löschst du die Datei und den Eintrag aus der Datenbank =)
 
sowas geht mit unlink :
Code:
[COLOR=#000000][FONT=Courier New][COLOR=#0000bb]<?php[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]
[/COLOR][COLOR=#0000bb]unlink[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'test.html'[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]);
[/COLOR][COLOR=#0000bb]?>[/COLOR] [/FONT][/COLOR]
wie man das jetzt macht das das per link geht weiß ich nicht aba ich bin auch nur anfänger
und habe das hier aus meinem php lehrbuch rausgeschriben ...

Alle Angaben ohne Gewähr
 
also, dann werde ich es mal genau beschreiben.

der link der datei ist in folgendem array auffindlich.
$dirArray[$index]
eine datenbank habe ich nicht, da mein server keine datenbanksysteme abgesehen einer von java generierten und verwalteten.

es gibt die möglichkeit das löschen einer datei durch einen button
und einer if schleife zu veranlassen. buttons würden jedoch nicht in das optische erscheinungsbild passen. darum ein simpler link.

es muss doch möglich sein in den link die löschen function einzubauen oder etwa nicht?


EDIT:
bin zum schluss gekommen, dass ich die unlink function nicht einbauen werde. dennoch wäre ich dankbar, wenn mir jemand einen lösungsvorschlag nennen würde.
 
Zuletzt bearbeitet:
eine datenbank habe ich nicht, da mein server keine datenbanksysteme abgesehen einer von java generierten und verwalteten.

Dann müsstest du die Daten z.B. in einer Datei abspeichern und immer die komplette Datei auslesen. Oder wenn du auf die ganze Sicherheit verzichten willst, dass jeder die Datei löschen kann, erstell eine Seite 'delete.php' und frag mit $_GET['bild'] den Bildnamen ab. dann setz den Namen einfach in den unlink()-Befehl ein. Fertig.

OHH sry tut mir echt leid

Kein Problem ^^
 
PHP:
<?php 
// Löschen Funktion
if(isset($_GET['delete']) && !empty($_GET['fileid'])) {
unlink($_GET['fileid']);
# header('Location: domain.org'); # Nach Löschung weiterleiten
}

// Auslesen, verlinken
$ordner = "./meinverzeichnis"; $handle = opendir($ordner); 
while ($file = readdir ($handle)) {     if($file != "." && $file != "..") {         
if(is_dir($ordner."/".$file)) {             
echo "/".$file."<br/>";         } 
else {             
// kompletter Pfad             
$compl = $ordner."/".$file;             
echo '<a href="'.$compl.'">'.$file.'</a>
<a href="?delete&amp;fileid='.$file.'">Delete</a><br/>';         
}     
} 
} 
closedir($handle); ?>
So ungefähr. Musst halt nochmal drüberschauen. Muss schnell zur Arbeit. :?
 
aJunkie schrieb:
PHP:
if(isset($_GET['delete']) && !empty($_GET['fileid'])) {
unlink($_GET['fileid']);
# header('Location: domain.org'); # Nach Löschung weiterleiten
}

Vorsicht, das ist ein Freifahrtschein, jede Datei auf dem Webspace zu löschen (etwa bei Setzen von $_GET['fileid'] auf '../index.php' oder ähnliches). Es sollte auf jeden Fall per realpath und substr oder strpos geprüft werden, dass im richtigen Verzeichnis gelöscht wird.

- PHP: realpath - Manual

Timmer schrieb:
Ich glaube, du hast das falsch interpretiert. Er meint, dass er die Löschfunktion nicht einbaut, weil er sie anscheinend doch nicht braucht oder weil ihm der Aufwand zu groß ist.

Stimmt, wäre möglich.
 
danke fuer eure verschlaege.

ich habe sie nicht eingebaut, damit, falls jemand sich unberechtigt in dem verzeichniss herumtreibt, dieser mir die dateien nicht loeschen kann.
um zu verhindern, dass jemand ein script hochlaedt und dieses ausfuehrt, habe ich die rechte einer neu hochgeladenen datei auf 0444 gesetzt.
 
Zurück
Oben