inspiron: Dateien vom Server löschen

Hallo,
mit folgendem Code möchte ich Daten vom Server listen und gegebenfalls löschen.
Das Problem derzeit ist, das die Dateien beim Start der Seite vom Server gelöscht werden. Sie werden zwar gelistet sind aber nicht mehr vorhanden.
Woran kann es liegen?

Gruß

  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="content-type" content="text/html; charset=utf-8" />  
<title>test</title>  
<meta name="keywords" content="" />  
<meta name="description" content="" />  
  
</head>  
<body>  
<table border="0" cellpadding="3" cellspacing="0">  
<?php  
  
$handle = opendir('./doku/pdf/');  
  
while (false !== ($file = readdir ($handle))) {  
if ($file=='.')  
{  
$file ='';  
}  
if ($file=='neu_.php')  
{  
$file ='';  
}  
if ($file=='..')  
{  
$file ='';  
}  
if ($file<>'')  
{  
  
echo "  
<tr bgcolor=\"#FFFFFF\">  
	<td>  
		<a href=\"doku/pdf/$file\">  
			<font style=\"font-family: Arial;\"><b>$file</b></font>  
		</a>  
	</td>  
	<td width=\"5\">";  
echo "	<form method=\"POST\" target=\"_self\" enctype=\"text/plain\">  
				<input type=\"hidden\" name=\"del\" value=\"$file\" />  
				<input type=\"submit\" value=\"L&ouml;schen\" />  
				</form>  
				</td></tr>  
";  
  
$datei = $file;  
  
if(!empty($datei))  
{  
	if(file_exists('doku/pdf/' . $datei))  
	{  
		@unlink('doku/pdf/' . $datei);  
		echo "Datei erfolgreich gelöscht!<br />\n";  
	}  
	else  
	{  
	echo "Datei existiert nicht mehr!<br />\n";  
	}  
}  
  
}  
  
}  
closedir($handle);  
?>  
</table>  
</body>  
</html>  

  1. Baue doch einfach noch eine Abfrage mit ein, dass die Dateien erst gelöscht werden, wenn der User z.B. auf einen bestimmten Button oder Link klickt.

  2. Hello,

    mit folgendem Code möchte ich Daten vom Server listen und gegebenfalls löschen.
    Das Problem derzeit ist, das die Dateien beim Start der Seite vom Server gelöscht werden. Sie werden zwar gelistet sind aber nicht mehr vorhanden.
    Woran kann es liegen?

    [...]

    {
    $file ='';
    }
    if ($file<>'')
    {

    [...]

    $datei = $file;

    if(!empty($datei))
    {
    if(file_exists('doku/pdf/' . $datei))
    {
    @unlink('doku/pdf/' . $datei);
    echo "Datei erfolgreich gelöscht!<br />\n";
    }

    [...]

    Das Problem scheint mir zu sein, dass Du Dir erst einmal übner den Mechanismus "Client - Server" Gedanken machen musst. Du hast in Deinem Script eine zeitliche Abfolge abgebildet, die nicht in einem Schritt durchgeführt werden soll, sondern eine zusätzliche Bedienerhandlung stattfinden lassen sollte. Dazu musst Du dann aber auch das Wechselspiel "Client <-> Server" stattfinden lassen.

    Außerdem hat Dein Lösungsansatz noch mehrere andere Fehler:

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Hi,

    mit folgendem Code möchte ich Daten vom Server listen und gegebenfalls löschen.
    Das Problem derzeit ist, das die Dateien beim Start der Seite vom Server gelöscht werden. Sie werden zwar gelistet sind aber nicht mehr vorhanden.
    Woran kann es liegen?

    Daran, dass du sie sofort nach der Ausgabe löschst.

    $datei = $file;

    if(!empty($datei))
    {
    if(file_exists('doku/pdf/' . $datei))
    {
    @unlink('doku/pdf/' . $datei);

    $file ist hier gesetzt (schliesslich hast du es im Kopf der While-Schleife mit einem aus dem Verzeichnis gelesenen Dateinamen belegt) - $datei ist damit nicht leer, die Datei existiert, und du löschst sie mittels unlink.

    Und da du das auch noch innerhalb der Schleife machst, löschst du somit alle Dateien, direkt nachdem du sie ausgegeben hast.

    Du hast zwar auch ein Formular dazu gebastelt - aber das Löschen ja überhaupt nicht davon abhängig gemacht, ob dieses abgeschickt wurde und einen zu löschenden Dateinamen übermittelt hat, sondern einfach jedes Mal den genommen, der aus dem anderen Teil des Scriptes (Auslesen) sowieso noch zur Verfügung steht.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. ...o.k. Danke für die Hinweise