AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Datei mit unlink löschen

Ein Thema von Luckie · begonnen am 6. Okt 2009 · letzter Beitrag vom 7. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:15
Hmpf, ich dachte, ich wäre fertig.

Ich versuche mit unlink eine datei zu löschen:
Code:
<?php         
   include("header.html");   
   
   $folder = "backup/";
   
   $file = $_GET['file'];
?>

   <h2>Datensicherung</h2>
   


   <?php
      echo $folder.$file;   
      if (unlink($folder.$file))
      {         
         echo "

<font color='green'>[b]Datei [i]".$file."[/i] erfolgreich gelöscht[/b]</font></p>";
      }
      else
      {
         echo "

Datei [i]".$file."[/i] konnte nicht gelöscht werden</p>";
      }   
   ?>
   
   


   

[url="backup.php"]Zurück[/url]</p>

<?php   
   include("footer.html");
?>
Das komische ist, ich bekomme eine Fehlermeldung:
Zitat:
Warning: unlink(backup/200910061242_adressen.csv) [function.unlink]: No such file or directory in /var/www/l3s11195/html/Privat/AdressDB/delfile.php on line 13
(Pfad und Dateiname stimmt.) Aber die Datei wurde trotzdem gelöscht. Das Backup-Verzeichnis hat die Berechtigungen 777 und die Dateien, die auch von einem Skript erstellt wurden, 644.

Warum bekomme ich die Fehlermeldung, obwohl das Löschen funktioniert hat?

Erstellt wird die datei so:
Code:
$f = fopen ($path, 'w+');
   if ($f == NULL)
   {
      die("Datei konnte nicht angelegt werden");
   }

   fputs($f, $out);
   fclose($f);
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#2

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:27
existiert denn auch die Datei "/var/www/l3s11195/html/Privat/AdressDB/backup/200910061242_adressen.csv" ?

bzw. versuch mal
Code:
$folder = "./backup/";

immer wird editiert


ja ... hmmmmm ... also wenn es geht ...


notfalls kannst'e ja immernoch die Meldung einfach unterdrücken
Code:
if (@unlink($folder.$file))
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:34
Die Pfadangabe hatte ich auch schon probiert.

Dann werde ich das erstmal unterdrücken. Allerdings ich bekomme auch meine eigene Fehlermeldung zu sehen. Unlink liefert also false zurück, obwohl die Datei gelöscht wird. Irgendwie rätselhaft.

Wie vermutet, PHP-Fehlermeldung ist weg, aber meine bekomme ich zu sehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#4

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:39
Das ist doch nicht das Script, so wie du es nutzt?
(würde jedenfalls viel Spaß machen, dir via $_GET['file'] den gesamten Webspace lehrzulöschen absichtlich mit H, da es dir dann eine Lehre sein wird X'D )

vielleicht löschst du die Datei ja doppelt?
> erstes Mal geht und beim Nächsten kommt dann der Fehler
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:42
Doch, das ist genau das Skript, wie ich es nutze. Das Skript liegt zwar auf meinem Webspace, aber da kommst du nicht dran.

Und wo lösche ich sie zwei mal:
Code:
<?php      
      if (@unlink($folder.$file))
      {         
         echo "

<font color='green'>[b]Datei [i]".$file."[/i] erfolgreich gelöscht[/b]</font></p>";
      }
      else
      {
         echo "

Datei [i]".$file."[/i] konnte nicht gelöscht werden</p>";
      }   
   ?>
In allen zugehörigen Skripten wird unlink nur einmal verwendet und zwar hier an dieser Stelle.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#6

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:51
na dann hoff ich mal keiner findet dein Script

Ja, also ich hätte dann einfach gedacht, daß ist hier "nur" ein kleines Problemvorführscript und im großen "echten" Script versteckt sich eventuell in den Unmassen an Code noch ein Lösch-Befehl



dann könnte man es ja erstmal nur noch so probieren
Code:
<?php print_r(unlink('./backup/200910061242_adressen.csv')); ?>
und wenn auch dieses Scrippt den gleichen Fehler erzeugt, dann stimmt wohl mit deinem PHP etwas nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: [PHP] Datei mit unlink löschen

  Alt 6. Okt 2009, 23:56
Nun ja, den Pfad kennst du ja jetzt.

Hm, hardgecoded funktioniert es.

Code:
echo $folder.$file;
Ergibt: ./backup/200910070024_adressen.csv
Oder ist der Dateiname zu lang?

Und laut file_exists existiert die Datei:
Code:
echo file_exists($folder.$file);
Warum bekomme ich also von unlink den Fehler, aber sie wird trotzdem gelöscht?

aufgerufen wird das Skript so:
Code:
foreach ($files as $file)
         {
               echo "<tr><td>".$file."</td><td>".date("Y-m-d H:i", filemtime($folder.$file))."<td align=right>".filesize($folder.$file)."</td><td>[img]./images/restore.jpg[/img] [url='".$folder.$file."'][img]./images/save.jpg[/img][/url] [url='delfile.php?file=".$file."'][img]./images/delete.jpg[/img][/url]</td></tr>";
         }
$files enthält eine einfache Dateiliste.

Verdammt, jetzt hat es einmal funktioniert. Bei nächste Datei, aber wieder das alte Spiel. Allerdings sehe ich jetzt die Ausgabe von file_exists nicht mehr. Komisch.
Wird immer seltsamer. Ich führe das aus:
Code:
<?php      
      echo file_exists($folder.$file);
      
      /*if (unlink($folder.$file))      
      {         
         echo "

<font color='green'>[b]Datei [i]".$file."[/i] erfolgreich gelöscht[/b]</font></p>";
      }
      else
      {
         echo "

Datei [i]".$file."[/i] konnte nicht gelöscht werden</p>";
      }*/
   ?>
OK, Datei existiert. Dann kommentiere ich das wieder ein und führe es aus, dann funktioniert alles, aber nur bei der Datei, bei der ich das vorher probiert habe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#8

Re: [PHP] Datei mit unlink löschen

  Alt 7. Okt 2009, 00:31
füge mal ein clearstatcache(); davor ein

die Cache wird unter Linux nur "immer" gelöscht, wenn eine Datei gelöscht wird
beim Erstellen und Ändern ist dises nicht immer der Fall





oder du könntest auch einfach mal ein paar Tage warten?

bei mir war es vor 'ner Weile so, das einfach keine Dateien aufgelistet wurden
und nach 'ner Weile ging es urplötzlich wieder (ohne irgendeine Änderung)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: [PHP] Datei mit unlink löschen

  Alt 7. Okt 2009, 00:32
Code:
<?php      
      if (file_exists($folder.$file))
      {
         if (unlink($folder.$file))      
         {         
            echo "

<font color='green'>[b]Datei [i]".$file."[/i] erfolgreich gelöscht[/b]</font></p>";
         }
         else
         {
            echo "

Datei [i]".$file."[/i] konnte nicht gelöscht werden</p>";
         }
      }
      else
      {
         echo "

Datei [i]".$file."[/i] existiert nicht</p>";
      }
   ?>
Jetzt bekomme ich gar keine Ausgabe, aber die datei wird gelöscht.

Werde ich mal probieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [PHP] Datei mit unlink löschen

  Alt 7. Okt 2009, 00:36
Der Ablauf ist folgender:
1: Skript mit Dateiliste wird aufgerufen.
2: Über das Skript wird ein Skript zum Erstellen aufgerufen.
3: Von da gibt es ein Link zurück zum Skript mit der Dateiliste.
4: Lösche ich jetzt, existiert die Datei nicht.
5. Mache ich eine Refresh mit dem FTP Client auf das betroffene Verzeichnis, kann ich die Datei fehlerlos löschen. Mist geht auch nicht immer.

Gleich baue ich jegliche Fehlerüberprüfung aus.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz