unlink() und rmdir() error als "echo" ausgeben?

Roshmar

Grünschnabel
Hallo zusammen...

Hui... mein erster beitrag :D und direkt eine Frage -.-
ich bin gerade dabei mir ein Upload Script zu schreiben!
Upload, löschen von Datein, erstellen neuer Ordner im AdminMenü und diese wieder löschen geht auch soweit...

Allerdings habe ich ein Problem!
Ich habe zu jeder funktion (rmdir und unlink) auch eine "Erfolg-" meldung eingebaut...
Leider habe ich nun das problem, das ich gerade keine ahnung habe, wie ich es hinbekomme das bei einem error z.B. nicht

HTML:
Warning: unlink([FILE]) [function.unlink]: No such file or directory in....
sondern eine Fehlermeldung wie
Datei konnte nicht gelöscht werden!

Hat da evtl jemand einen Tipp?

So sieht der Code aktuell aus:

PHP:
<?php
  $dir = $_GET['dir'];
  if($_POST['newFolder']){
    FileServer::createFolder("../content/uploads/".$dir,$_POST['name']);
  }
  if($_GET['unlink']){
    unlink("../content/uploads/".$_GET['dir']."/".$_GET['unlink']);
		echo "<div class=\"message success close\">
		  <h2>Erfolgreich!</h2>
		  <p>".$_GET['unlink']." wurde gel&ouml;scht!</p>
		  </div>";
  }
  if($_GET['rmdir']){
	rmdir("../content/uploads/".$_GET['rmdir']);
	echo "<div class=\"message success close\">
		  <h2>Erfolgreich!</h2>
		  <p>Verzeichnis ".$_GET['rmdir']." wurde gel&ouml;scht!</p>
		  </div>";
	}
  $verzeichnis = openDir("../content/uploads/".$dir);
?>

Diverse versuche wie z.B.

PHP:
	rmdir("../content/uploads/".$_GET['rmdir']);      
      if (unlink(("../content/uploads/".$_GET['dir']."/".$_GET['unlink'] = false){
        echo "Datei konnte nicht gel&ouml;scht werden!";
       } else {
	echo "<div class=\"message success close\">
		  <h2>Erfolgreich!</h2>
		  <p>Verzeichnis ".$_GET['rmdir']." wurde gel&ouml;scht!</p>
		  </div>";
	}

habe ich bereits versucht... und Google liefert mir so nette Lösungen wie IBM Datenbank verwaltungs Guides ;) die mich in dem Moment aber mal sowas von nicht interessieren ^^


Danke schon mal


Roshmar
 
Du kannst unlink mit einem vorangestellten @ aufrufen, das unterdrückt die Meldungen.
@unlink('datei.html');
Allerdings ist eine vorherige Prüfung, wie von threadi beschrieben besser.

So wie dein Script aussieht, kann ja sowieso jeder alles löschen, sieht sehr gefährlich aus...
 
Richtig, Stichwort Directory Traversal. Aber wir kennen die Settings zu safemode und sonstige PHP-Konfigurationen nicht.
 
Hey...
Ich habs jetzt mit dem hinweiß von threadi gelöst!
file_exist() ist mir da garnicht eingefallen :D

Danke ^^
 
Zurück