Ein etwas grösseres PHP-Problem...



  • Hi Zusammen!

    Mit folgendem Code lasse ich den Speicherplatz anzeigen:

    <?php
    function dirsize($dir) { 
     $dh = opendir($dir); 
     $size = 0; 
     while (($file = readdir($dh)) !== false) {
      if ($file != "." and $file != "..") { 
       $path = $dir."/".$file; 
       if (is_dir($path))
        $size += dirsize($path);
       elseif (is_file($path)) 
        $size += filesize($path); 
      }
     }
     closedir($dh); 
     return $size; 
    }
    
    function format_size($rawSize)
    {
     return round($rawSize/1048576, 2);
    }
    $mb_free = 60 - format_size(dirsize('./downloads'));
    if($mb_free>60)
    {
    echo "Es steht kein Platz mehr zur Verfügung.\nVersuche es später nocheinmal.";
    }
    else
    {
    echo "Es stehen noch ".$mb_free." MB zur Verfügung!!";
    }
    ?>
    

    Ich habe versucht, ein Uploadformular einzubauen, und zwar bei IF....
    D.h. wenn kein Platz mehr vorhanden FORMULAR = NICHT anzeigen, ansonsten schon.

    ICh habe es so versucht:

    function dirsize($dir) { 
     $dh = opendir($dir); 
     $size = 0; 
     while (($file = readdir($dh)) !== false) {
      if ($file != "." and $file != "..") { 
       $path = $dir."/".$file; 
       if (is_dir($path))
        $size += dirsize($path);
       elseif (is_file($path)) 
        $size += filesize($path); 
      }
     }
     closedir($dh); 
     return $size; 
    }
    
    function format_size($rawSize)
    {
     return round($rawSize/1048576, 2);
    }
    $mb_free = 60 - format_size(dirsize('./downloads'));
    if($mb_free>60)
    {
    echo "Es steht kein Platz mehr zur Verfügung.\nVersuche es später nocheinmal.";
    exit;
    }
    else
    {
    echo "<form action=\"upload.php\" mehtod=\"post\" enctype=\"multipart/form-date\">";
    echo "<input type=\"file\" name=\"file\">";
    echo "<input type=\"submit\" value=\"Upload..\">";
    echo "Es stehen noch ".$mb_free." MB zur Verfügung!!";
    }
    ?>
    

    Doch anstatt mir das Formular NICHT anzuzeigen, gibt der einfach:

    Es stehen noch - 2.34MB zur verfügung!

    aus. Das mit den 2.34 ist ja nur einbeispiel... ABER: Das Formular wird trotzdem! angezeigt! Warum das??? 😕 😕



  • $mb_free ist nie größer als 60, da du ja den schon belegten Platz von 60 abziehst, außerdem ist deine if-Abfrage gerade falsch heurm, z.B. so mus es aussehen:

    if($mb_free > 10) // wenn mehr als 10 MB frei sind
    {
     // hier kommt das formular
    }
    else // es sind weniger als 10 MB frei
    {
     // hier den Fehler anzeigen!
    }
    


  • jo. Thx!
    Ich "TROTTEL" hätte eigentlich selber drauf kommen müssen!!!!!!!!

    Gnnn... *andiestirnschlag..* 😃



  • und: wer nun den Zusammenhang sehen möchte, für WAS ich eigentlich das Frage, der kann das Ergebnis bewundern:

    http://www.it-center.ch.tf/exchange.html


Anmelden zum Antworten