[php] datei lastet server aus:

mi2g

Lieutenant
Registriert
Apr. 2003
Beiträge
1.021
mein anbieter hat mir gedroht, weil eine datei von mir seinen server auslastet. hat wohl irgendeinen fehler drinen.
hier ist die datei:

PHP:
<?php

echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../style.css\" />";

   $pic_zeile  = "4";
   // Anzahl der Fotos in einer Zeile. Standard "4"!

   $datei_end  = array("gif", "jpg");
   // Dateiformate die angezeigt werden sollen. Standard "gif, jpg"!

   $groesse = "100";
   // Größe der Thumbnails. Standard "100"!

   $name_anz = "ja";
   // Soll der Dateiname angezeigt werden? Standard "ja"!

   $border = "0";
   // Breite des Tabellenrahmens? Standard "0"!

   $gd_lib = "2.0";
   // GD-Lib - Entweder "1.6" oder "2.0"!

?>

<html>
<head>
<title>Fotos vom Oktoberfest 2004</title>
<link rel="stylesheet" type="text/css" href="../style.css" />
</head>
<body id="margin">
<span class="stil2">Fotos vom Oktoberfest 2004:</span>
<div align="center">

<script language="JavaScript">
function fenster(name) {
   var breite = screen.width - 10;
   var hoehe  = screen.height - 60;

   NewWin = window.open("ausgabe.php?file="+name, "Foto", "width="+breite+", height="+hoehe+", top=0, left=0, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=yes");
}
</script>

<?php

   $datei_name = $_SERVER["PHP_SELF"];
   $fileplace  = ".";

   if (isset($pfad) || empty($pfad)) echo "<h2>" .$pfad. "</h2>";

   function createThumb($img_src, $img_width , $img_height, $des_src, $folder) {
      if (!file_exists($folder. "/" .$des_src)) {
         umask(0000);
         if (!mkdir($folder. "/" .$des_src, 0777)) {
            die("Konnte Ordner ".$folder. "/" .$des_src." nicht erstellen!");
         }
      }

      $im = imagecreatefromjpeg($folder. "/" .$img_src);
      list($src_width, $src_height) = getimagesize($folder. "/" .$img_src);
      if($src_width >= $src_height) {
         $new_image_width = $img_width;
         $new_image_height = $src_height * $img_width / $src_width;
      }
      if($src_width < $src_height) {
         $new_image_height = $img_width;
         $new_image_width = $src_width * $img_height / $src_height;
      }

      if ($gd_lib == "1.6") {
         $new_image = imagecreate($new_image_width, $new_image_height);
         imagecopyresized($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
      }
      else {
         $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
         imagecopyresampled($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
      }

      imagejpeg($new_image, $folder. "/" .$des_src. "/" .$img_src, 100);
   }

   function name_of_file($filename) {
      $len    = strlen(strrchr($filename,"."));
      $ganz   = strlen($filename) + 1;
      $grafik = substr($filename,$ganz-$len);
      return $grafik;
   }

   $i       = 0;
   $zaehler = 0;

   if (!isset($pfad) ||
        empty($pfad)) {
      $verz = opendir ($fileplace);
      while ($file = readdir ($verz)) {
         if (name_of_file($file) == ""  &&
            $file                != "." &&
            $file                != ".." ) {

            $zaehler++;

            echo "<BR><a href=" .$datei_name. "?pfad=" .$file. ">" .$file. "</a>";

         }
      }
      closedir($verz);
   }
   else {
      if (file_exists($pfad)) {
         $verz = opendir ($pfad);

         echo "<table border=$border cellpadding=10>";

         while ($file = readdir ($verz)) {
            $filegrafik = strtolower(name_of_file($file));
            if (in_array ($filegrafik, $datei_end)) {

               $i++;
               $zaehler++;

               if ($i == $pic_zeile + 1) {
                  $i = 1;
                  echo "<tr>";
               }

// if (!file_exists($pfad. "/thumbnails/" .$file))
               createThumb($file, $groesse, $groesse, "thumbnails", $pfad);

               echo "<td align=center><a href=\"javascript: fenster('" .$pfad."/".$file. "');\"><img src=" .$pfad."/thumbnails/".$file. " border=0 alt=".$file."></a>";
               if ($name_anz == "ja") echo "<BR><font size=1>".$file."</font>";
               echo "</td>";

               if ($i == $pic_zeile + 1) {
                  $i = 1;
                  echo "</tr>";
               }

            }
         }
         echo "</table>";

         closedir($verz);
      }
      else {
         echo "Fotoalbum " .$pfad. " nicht gefunden!";
      }

   }

   if (!isset($pfad) ||
        empty($pfad)) {
      echo "<BR><BR>";
      echo $zaehler." Fotoalben vorhanden";
   }
   else {
      echo "<BR><BR>";
      echo $zaehler." Fotos vorhanden";
   }

   if(isset($pfad) ||
      !empty($pfad)) {
      echo "<BR>";
      echo "<a href=" .$datei_name. ">zurück zur Auswahl</a>";
   }


  
?>

</div>

</body>
</html>


wo ist der fehler? oder was lastet den server so aus? danke schonmal.
 
Im Script ist kein Fehler soweit ich es überflogen habe. Ich weiß aber, dass Befehl imagecreatefromjpeg() wenn das original Bild sehr groß ist (größer als 1024x786) sehr viel Speicher verbraucht und auf meinem Webspace sogar ab dieser Größe einen Fehler ausgibt. Ne richtige Lösung gibt es soweit ich weiß nicht, ausser kleinere Source-Bilder zunehmen.
 
Hab nur kurz überflogen, aber kann es sein, dass bei jedem Seitenabruf Thumbnails erzeugt werden?

Und warum schreibst du vor dem <html>-Tag nochmal den CSS-Link rein?
 
ja ist gut möglich, dass es das bei jedem seitenaufruf macht.
also ich habe einmal den css link für das php und einmal für das html reingeschrieben.
reicht einmal?
 
Wenn die Bilder einmal erstellt wurden ist es sinnlos, diese nochmal zu erstellen. Überleg mal: Wenn auf einer Seite zwanzig Bilder angezeigt werden und 20 Leute gleichzeitig auf deiner Seite sind, muß der Server schon 400 Bilder gleichzeitig erzeugen. Kein Wunder, dass da der Provider meckert. ;)

Lass deshalb erst prüfen, ob das jeweilige Bild nicht schon vorhanden ist. Falls nicht, lässt du es dann erstellen.


CSS für PHP ist ebenso sinnlos, wird ja als HTML ausgegeben.
 
Zurück
Oben