kostenloser Webspace werbefrei: lima-city


PHP - Dateien anzeigen + löschfunktion

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    Href="/tag/all">allo..

    ich habe folgendes Script:

    echo "<br><h2>Deine Dateien:</h2><br><br>";				
    date_default_timezone_set('Europe/Berlin'); /* notwendig ab PHP 5.3, sonst Warnung */
    
    $verzeichnisname = "usr/{$_SESSION['Nickname']}";
    
    $verzeichnis = opendir($verzeichnisname);
    while($eintrag = readdir ($verzeichnis))
    {
      $test = $verzeichnisname . "/" . $eintrag;
      if(is_dir($test) or (($eintrag==".htaccess") or ($eintrag=="verboten.html")))
        {
         /* echo "<!-- $eintrag -->\n"; */
        }
      else
         {
         echo "<tr>\n<td align=\"left\"><a href=\"usr/{$_SESSION['Nickname']}/$eintrag\">$eintrag</a></td>\n";
         echo "<td align=\"right\">" . filesize($test) . " Byte</td>\n";
         echo "<td align=\"left\">" . strftime("%a, %d.%b.%y, %H:%M", filemtime($test)) . "</td>\n<br>";
         }
    }
    closedir($verzeichnis);



    ich möchte da noch eine Löschfunktion hinzufügen.. Dass quasi neben der Datei noch ein kleiner Löschen bUtton ist, mit dem man die Datei löschen kann..

    Ich bekomm das aber iwie nicht richtig hin.. Kann mir jmnd von euch helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. (niedliche stacheln ;)
    also ich kann mir das in etwa so vorstellen:
    <?php
    
    session_start();
    $_SESSION['Nickname'] = 'test'; // DAS IST NUR FÜR'S TESTEN (subdirectory-name!)
    
    if(!empty($_POST['delete'])) {
    
      $res = "<strong>hier kannst die datei löschen:</strong> ./{$_SESSION['Nickname']}/{$_POST['delete']}";
      // proggen musst du schon selber ;)
    
    } else {
    
      $res = <<< EOT
    <h2>Deine Dateien:</h2>
    <form action"" method="post">
    
    EOT;
    
      date_default_timezone_set('Europe/Berlin');
    
      $folder = "./{$_SESSION['Nickname']}";
      $ls     = glob($folder.'/*');
      foreach($ls as $file) {
        $bfile = basename($file);
        $res  .= "  <a href=\"$file\">$bfile</a>
          <input type=\"submit\" name=\"delete\" value=\"$bfile\" /><br />\n";
      }
      $res .= "</form>";
    
    }
    exit(''.print_r($res, true));
    wenn auch so etwas funktioniert, würde ich das aber doch nicht tun!
    was hast du eigentlich vor?

    Beitrag zuletzt geändert: 19.1.2012 3:54:54 von hemiolos
  4. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    hmm.. funtzt nicht ganz..
    Hab es jetzt mal so Probiert:

    <?php
    
    
    if(isset($_SESSION['UserID'])){
    
    				include("upload.php");
    
    
    
    
    				
    echo "<br><h2>Deine Dateien:</h2><br><br>";				
    date_default_timezone_set('Europe/Berlin'); 
      
      if (isset ($_POST['eintrag']))
      {
         unlink( "usr/{$_SESSION['Nickname']}/{$_POST['eintrag']}" );
    	 echo "{$_POST['eintrag']} wurde gelöscht";
      }
      else
      {
      
    $verzeichnisname = "usr/{$_SESSION['Nickname']}";
    
    $verzeichnis = opendir($verzeichnisname);
    while($eintrag = readdir ($verzeichnis))
    {
    
    
      $test = $verzeichnisname . "/" . $eintrag;
      if(is_dir($test) or (($eintrag==".htaccess") or ($eintrag=="verboten.html")))
        {
         /* echo "<!-- $eintrag -->\n"; */
        }
      else
         {
    	 
    	 
         echo "<tr>\n<td align=\"left\"><a href=\"usr/{$_SESSION['Nickname']}/$eintrag\">$eintrag</a></td> 
    	 
    
    	 
    	\n";
    
    
         echo "<td align=\"right\">" . filesize($test) . " Byte</td>\n";
         echo "<td align=\"left\">" . strftime("%a, %d.%b.%y, %H:%M", filemtime($test)) . "</td>
    	 
    	 	 <form action=\"index.php\" method=\"post\">
    	 <input type=\"hidden\" name=\"eintrag\"     value=\"$eintrag\">
         <input type=\"submit\"   name=\"doit\"        value=\"löschen\">
    	 \n<br>";
         }
    }
    
    }
    
    closedir($verzeichnis); 
    
    
    }
    else{
    ?>
    
    Hallo.. <br>
    Leider bist du noch nicht eingeloggt.<br>
    Bitte logge dich ein, um deine Dateien zu sehen..
    
    <?php
    }
    ?>


    Jetzt wird nach dem druck auf den löchen BUtton zwar gelöscht, aber leider immer die Letzte Datei in der liste, und nicht die ausgewähle..

    kann mir einer sagen was ich falsch mache?


    EDIT:

    LOOOL.. Fehler gefunden:
    liegt am fehlenden </form> in der Schleife ...:shy:

    bin wohl schon zulange wach..
    Da hängt man stundenlan an so nem script, und dann nur, wel ich zu blöd war, einen simplen html tag zu schliessen..:sleep:

    Ich könnt im Boden versinken^^:wall:

    Vielen Dank für eure Mühen..


    Beitrag zuletzt geändert: 19.1.2012 12:14:00 von paddy-herrmy
  5. Hallo

    zum Thema: PHP - Dateien anzeigen + löschfunktion

    hier mal ein Script zum Löschen von allen Dateien und ganzen Ordnern
    ... löscht innerhalb des Verzeichnis, in dem das Script liegt.

    eher zur Kontrolle der Dateien auf dem Webspace, also nix für die User :)

    oder doch ?
    .... die Variable $ordner = '.'; als User-Verzeichnis anpassen
    und die Zugangskontrolle (Login) entsprechend ändern


    hier die Datei: delete_all.php zum anzeigen und löschen von Dateien und Ordner

    <?php
    // ------------------------------------------------------------ 
    // ----------------- DELETE files and folders ----------------- 
    // ------------------------------------------------------------ 
    
    $password = 'admin';    // --- bitte anpassen / aendern !!! 
    
    // -------------------------------------------- 
    
    $secsalt = 'c4RtG81Qwi'; 
    
    $ordner = '.'; 
    
    $message = 'Bitte eine Datei oder ein Verzeichnis ausw&auml;hlen:'; 
    
    // -------------------------------------------- 
    
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    
    $runfile = basename($_SERVER['SCRIPT_NAME']); 
    $run_dir = dirname($_SERVER['SCRIPT_NAME']); 
    
    // -------------------------------------------- 
    
    
    function deldir($dir)  { 
    
    	$dp = @opendir($dir); 
    	while($file = @readdir($dp)) { 
    	$name = $dir . '/' . $file;
    	if ($file != '.' && $file != '..') 
    	{ 
    	if (is_dir($name)) { @deldir ($name); } 
    	else { @unlink($name); }
    	} 
    	} 
    	@closedir($dp); 
    	@rmdir($dir); 
    	$message = 'Das Verzeichnis <strong>'.$dir.'</strong> wurde entfernt.';
    
    return $message; 
    }  
    
    // -------------------------------------------- 
    
    $ypw = md5($password.$secsalt); 
    $zpw = 'x'; 
    
    if (!empty($_GET['pw'])) { 
    $zpw = md5($_GET['pw'].$secsalt); 
    }
    
    if (!empty($_GET['xpw'])) { 
    $zpw = $_GET['xpw']; 
    }
    
    // -------------------------------------------- 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="pragma" content="no-cache">
    
    <title>DELETE ALL</title>
    
    <style type="text/css">
    <!--
    body { 
      font-family: Verdana, Arial; 
      font-size: 12px; 
      color: #000000; 
      background-color: #FFFFFF; 
    }
    -->
    </style>
    
    </head>
    <body>
    
    
    <?php 
    // -------------------------------------------- 
    
    if ($zpw == $ypw) { 
    
    
    
    if (!empty($_GET['delete'])) { 
    // ------------------------------ 
    
    $directory = trim($_GET[delete]);
    
    if (is_file($directory) === TRUE) {
    @unlink ($directory); 
    $message = 'Die Datei <strong>'.$directory.'</strong> wurde entfernt.'; 
    }
    else { 
    $message = deldir ($directory); 
    }
    
    // ------------------------------ 
    }
    
    
    // -------------------------------------------- 
    
    
    echo "<div style=\"text-align:center;\">\r\n";
    echo "<h1>DELETE ALL</h1>\r\n"; 
    echo "<p> --- <a href=\"".$runfile."?&xpw=".$zpw."\">HOME</a> --- <a href=\"".$runfile."?&xpw=x\">LOGOUT</a> --- </p>\r\n"; 
    echo "<p><span style=\"padding:4px; background:#DEDEDE;\">".$run_dir."/</span></p>\r\n";
    echo "<p>".$message."</p>\r\n"; 
    echo "</div>\r\n";
    
    echo "<hr />\r\n";
    
    echo "<div style=\"text-align:center;\">\r\n";
    echo "<br />\r\n";
    
    
    echo "<table width=\"700\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\" align=\"center\">\r\n"; 
    
    echo "<tr bgcolor=\"#CCCCCC\" align=\"center\" valign=\"top\">\r\n"; 
    echo "<td width=\"5%\">NR</td>\r\n";
    echo "<td width=\"10%\">TYP</td>\r\n"; 
    echo "<td width=\"55%\">NAME</td>\r\n"; 
    echo "<td width=\"15%\">VIEW</td>\r\n";
    echo "<td width=\"15%\">DELETE</td>\r\n"; 
    echo "</tr>\r\n"; 
      
    $handle = opendir($ordner);
    
    $i=1; 
    while ($file = readdir ($handle)) {
    if($file != '.' && $file != '..' && $file != $runfile) {
    
    if(is_dir($ordner.'/'.$file)) {
    $deltyp = 'Ordner'; 
    $delnam = '<strong>'.$ordner.'/'.$file.'/</strong>'; 
    } 
    else {
    $deltyp = 'Datei'; 
    $delnam = ''.$ordner.'/'.$file.''; 
    }
    
    $viewit = '<a href="'.$ordner.'/'.$file.'" target="_blank">(ansehen)</a>'; 
    $delink = '<a href="'.$runfile.'?delete='.$ordner.'/'.$file.'&xpw='.$zpw.'">[entfernen]</a>'; 
    
    if ( $i%2 == 0) { $tabbgcolor = '#DDDDDD'; } 
    else { $tabbgcolor = '#EEEEEE'; } 
    
    echo "<tr bgcolor=\"".$tabbgcolor."\" align=\"left\" valign=\"top\">\r\n";
    echo "<td width=\"5%\">&nbsp; ".$i."</td>\r\n";
    echo "<td width=\"10%\">&nbsp; ".$deltyp."</td>\r\n";
    echo "<td width=\"55%\">&nbsp; ".$delnam." </td>\r\n";
    echo "<td width=\"15%\">&nbsp; ".$viewit."</td>\r\n";
    echo "<td width=\"15%\">&nbsp; ".$delink."</td>\r\n";
    echo "</tr>\r\n";
    
    $i++; 
    
    }
    
    }
    
    closedir($handle);
    
    
    echo "</table>\r\n"; 
    
    echo "<br />\r\n";
    echo "<br />\r\n";
    
    echo "</div>\r\n";
    
    
    
    // -------------------------------------------- 
    
    }
    else { 
    
    echo "<br />\r\n"; 
    echo "<form name=\"form1\" method=\"get\" action=\"".$runfile."\">\r\n"; 
    echo "Passwort:  <input type=\"password\" name=\"pw\" size=\"22\" maxlength=\"100\" />\r\n"; 
    echo "<input type=\"submit\" name=\"login\" value=\"OK\" />\r\n"; 
    echo "</form>\r\n"; 
    echo "<br />\r\n"; 
    
    }
    
    // -------------------------------------------- 
    
    
    echo "<br />\r\n"; 
    echo "<br />\r\n"; 
    echo "<br />\r\n"; 
    
    
    // ---------------------------------------------------- 
    ?>
    
    </body>
    </html>



    ok, das kann man natürlich auch mit SESSIONs machen
    und noch viel mehr rein bauen, wie Datei-Datum, Sortierung nach Name/Datum, etc.
    aber so ist es auch schon ganz brauchbar, finde ich


  6. paddy-herrmy schrieb:
    hmm.. funtzt nicht ganz..
    wirklich aussagekräftig ;) was funzt nich ganz? (ganz!? jein gibt es nur in österreich) fehlermeldung ... ?
  7. Autor dieses Themas

    paddy-herrmy

    Kostenloser Webspace von paddy-herrmy

    paddy-herrmy hat kostenlosen Webspace.

    hemiolos schrieb:
    wirklich aussagekräftig ;) was funzt nich ganz? (ganz!? jein gibt es nur in österreich) fehlermeldung ... ?


    Sry, ich saß da gester über 12 Stunden dran^^ Ich weiss jetzt auch nichtmehr, was da jetzt nicht gefuntzt hat^^
    Ich danke dir trotzdem für deine Hilfe..

    So Wie ich es Jetzt habe Funtzt es auf jeden fall.. und.. ja, ich weiss, dass das alles andere als sicher ist^^

    Habe jetzt auch noch eine Grössenermittlung eingebaut:

    $grundgroesse = filesize($test);  //Grösse ermitteln
    
    
    if 
    ($grundgroesse<1024){
    $dateigroese = (filesize($test))." Byte";
    }
    if 
    ($grundgroesse>1024){
    $dateigroese = number_format(filesize($test)/1024)." KB";
    }
    if ($grundgroesse>1024*1024){
    $dateigroese = number_format(filesize($test)/1024/1024)." MB";
    }
    if ($grundgroesse>1024*1024*1024){
    $dateigroese = number_format(filesize($test)/1024/1024/1024)." GB";
    }


    Und eine Dateinamen-kürzung:

    $filename = basename($test); 
    $filename_zeichenanzahl = strlen($filename);
    if
    ($filename_zeichenanzahl>60){
    $filename_kurz = substr("$filename", -55);
    rename("$test", "usr/{$_SESSION['Nickname']}/...$filename_kurz");
    }


    ^^ :thumb:

    LG Paddy
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!