Ergebnis 1 bis 7 von 7

Thema: Problem mit löschen einer Datei

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Problem mit löschen einer Datei

    Hallo.
    Ich möchte mit PHP eine Datei (CHMOD 777) von meinem Server löschen lassen.
    Diese Datei liegt in einem Verzeichnis darüber, dann im Verzeichnis data/content, also ../data/content.
    Das Script sieht so aus :

    PHP-Code:
    <?
      
       if(!isset($file_del)) { 
            die "<p>Keine Datei ausgew&auml;hlt!"; 
       } else { 
            $path = "../data/content/"; 
            $file_del_do = $path.$file_del; 
            unlink($file_del_do);  
            echo "<div align=\"center\" >\n"; 
            echo "<p>\n"; 
            echo "Datei \"".$file_del."\" wurde gel&ouml;scht.<br /><br />\n"; 
            echo "<a href=\"index.php?content=files\">Zur File&uuml;bersicht</a>"; 
            echo "</p>\n"; 
            echo "</div>\n"; 
       }

    ?>
    Die URL lautet index.php?content=delete_do&file_del=test.php.
    Es wird angezeigt, dass die Datei gelöscht wurde, sie existiert aber noch

    Geändert von Tessio (23.07.2006 um 11:09 Uhr)

  2. #2
    Banale Lösung: Hat dein Server PHP <? deaktiviert, wodurch das ganze als HTML tag angesehen wird und daher nicht angezeigt wird?
    Hinweis: <?php funktioniert immer, nur das für guten Code nehmen

    Komische Lösung: hast du den richtigen Pfad und Namen für die Datei angegeben?

    Zitat Zitat
    _del=tes t.php
    Da wäre z.B. ein überflüssiges Leerzeichen, wie ich annehme.

    Wissenswerte Lösung: Wenn ich mich richtig erinnere, muss die Datei, die den Löschbefehl enthält die richtigen CHMOD Werte besitzen, nicht andersrum.

  3. #3
    Wie das Leerzeichen dahin gekommen ist, keine Ahnung, wenn ich den Beitrag editieren will, ises nich da o0 Also der Path stimmt, da hab ich schon mit var_dump nachgeschaut.
    PHP hat mein Server auch aktiviert, sonst würde der Rest meines ACP ja nicht funzen ._.
    Beide Dateien haben CHMOD 777, daran kanns auch nich liegen.

  4. #4
    PHP vielleicht schon, aber nicht die Einleitung eines Codeblocks mit der kurzschreibweise <?, besser wäre <?php, aber wenn deine anderen Skripte trozdem funktioneiren kann es daran nicht liegen.

    Eventuell könntest du noch versuchen, den absoluten Pfad der Datei anzugeben, weiter kann ich dann leider auch nicht helfen, da ich eigentlich nie mit diesen Funktionen arbeite.

    Ah, fast übersehen (peinlich):

    Variablen, die du über die URI angibt rufst du folgendermaßen auf: $_GET['name'], bei dir also: $_GET['file_del']. Ersetze deine drei Variblen durch die richtige Schreibweise.

  5. #5
    Hab $file_del mit $_GET[file_del] ersetzt, funktioniert aber immernoch nicht.
    Code ist jetzt folgender :

    PHP-Code:
    <?
      
       if(!isset($file_del)) {
           echo "<p>Keine Datei ausgew&auml;hlt!";
       } else {
            echo "<div align=\"center\" >\n";
            echo "<p>\n";
            echo "Wollen sie die Datei \"".$_GET['file_del']."\" wirklich l&ouml;schen?<br /><br />\n";
            echo "ACHTUNG! Wenn sie NICHT Samogas heißen, kann dieser bei Best&auml;tigung evtl sauer werden!<br /><br /><br />\n";
            echo "<a href=\"index.php?content=delete_do&file_del=".$_GET['file_del']."\" >Bestätigen</a>";
            echo "<img src=\"data/img/space.gif\" alt=\"\" width=\"50\">";
            echo "<a href=\"index.php?content=files\">Abbrechen</a>";
            echo "</p>\n";
            echo "</div>\n";
       }



    ?>

  6. #6
    Ok, einmal hast die Angabe vergessen. Aber ich glaube der große Fehler war u.a. das die.

    Versuch bitte diesen beiden Codeblöcke, bei mir hat es geklappt:

    Code:
    <?php
      
       if(!isset($_GET['file_del'])) { 
            echo "<p>Keine Datei ausgew&auml;hlt!</p>"; 
       } else { 
            $path = "../data/content/"; 
            $file_del_do = $path.$_GET['file_del']; 
            unlink($file_del_do);  
            echo "<div align=\"center\" >\n"; 
            echo "<p>\n"; 
            echo "Datei \"".$file_del."\" wurde gel&ouml;scht.<br /><br />\n"; 
            echo "<a href=\"index.php?content=files\">Zur File&uuml;bersicht</a>"; 
            echo "</p>\n"; 
            echo "</div>\n"; 
       }
    
    ?>
    Code:
    <?php
      
       if(!isset($_GET['file_del'])) {
           echo "<p>Keine Datei ausgew&auml;hlt!</p>";
       } else {
            echo "<div align=\"center\" >\n";
            echo "<p>\n";
            echo "Wollen sie die Datei \"".$_GET['file_del']."\" wirklich l&ouml;schen?<br /><br />\n";
            echo "ACHTUNG! Wenn sie NICHT Samogas heißen, kann dieser bei Best&auml;tigung evtl sauer werden!<br /><br /><br />\n";
            echo "<a href=\"index.php?content=delete_do&file_del=".$_GET['file_del']."\" >Bestätigen</a>";
            echo "<img src=\"data/img/space.gif\" alt=\"\" width=\"50\">";
            echo "<a href=\"index.php?content=files\">Abbrechen</a>";
            echo "</p>\n";
            echo "</div>\n";
       }
    
    
    
    ?>

  7. #7
    Hm... also funktionieren tuts immernoch nicht T__T
    Ich mach mal ne genaue Beschreibung :
    Also. Man klickt auf ein kleines Bildchen, dessen Link folgender ist :

    http://***/***/index.php?content=del...e_del=test.php
    Denkt euch das Leerzeichen weg, dass steht da aus unbekanntem Grund, fehler von vB.
    Dann kommt man auf die Seite content=delete, die folgendes Script hat :
    PHP-Code:
    <?php
      
       
    if(!isset($_GET['file_del'])) {
           echo 
    "<p>Keine Datei ausgew&auml;hlt!</p>";
       } else {
            echo 
    "<div align=\"center\" >\n";
            echo 
    "<p>\n";
            echo 
    "Wollen sie die Datei \"".$_GET['file_del']."\" wirklich l&ouml;schen?<br /><br />\n";
            echo 
    "ACHTUNG! Wenn sie NICHT Samogas heißen, kann dieser bei Best&auml;tigung evtl sauer werden!<br /><br /><br />\n";
            echo 
    "<a href=\"index.php?content=delete_do&file_del=".$_GET['file_del']."\" >Bestätigen</a>";
            echo 
    "<img src=\"data/img/space.gif\" alt=\"\" width=\"50\">";
            echo 
    "<a href=\"index.php?content=files\">Abbrechen</a>";
            echo 
    "</p>\n";
            echo 
    "</div>\n";
       }



    ?>
    Wenn man bestätigt, kommt man auf die Seite content=delete_do mit dem Script :
    PHP-Code:
    <?php
      
       
    if(!isset($_GET['file_del'])) { 
            echo 
    "<p>Keine Datei ausgew&auml;hlt!</p>"
       } else { 
            
    $path "../data/content/"
            
    $file_del_do $path.$_GET['file_del']; 
            
    unlink($file_del_do);  
            echo 
    "<div align=\"center\" >\n"
            echo 
    "<p>\n"
            echo 
    "Datei \"".$file_del."\" wurde gel&ouml;scht.<br /><br />\n"
            echo 
    "<a href=\"index.php?content=files\">Zur File&uuml;bersicht</a>"
            echo 
    "</p>\n"
            echo 
    "</div>\n"
       }

    ?>
    Die Datei test.php existiert und ist im Ordner ../data/content/. Es wird auch angezeigt, dass sie gelöscht worden ist, aber sie wurde halt nicht gelöscht. =_=

    EDIT
    YAAAAY, funzt!
    Hatte vergessen, dem Contentordner CHMOD 777 zu geben ;_; THX @ mitaki $knuff

    Geändert von Tessio (23.07.2006 um 15:45 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •