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: